Foxtable(狐表)用户栏目专家坐堂 → 帮我看看哪里错了?


  共有3175人关注过本帖树形打印复制链接

主题:帮我看看哪里错了?

帅哥,在线噢!
hongye
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:482 积分:3231 威望:0 精华:0 注册:2011/3/15 12:49:00
帮我看看哪里错了?  发帖心情 Post By:2020/3/14 0:03:00 [只看该作者]

    Dim dt As DataTable =  DataTables(fr & gps(i) &"核价")   
    Dim drs = dt.Select("款号 = '" & kss & "'and 样衣号 like '%" & yks & "%'","_sortkey")     
    For Each dr As DataRow In drs
        Dim r As  DataRow = DataTables("临时核价表").AddNew()
        r("款号") = dr("款号")
        r("样衣款号") = dr("样衣号")
        r("项目名称") = dr(gps(i) & "名称")
        r("分类") = gps(i) &"核价"
        For Each dc As DataCol In dt.DataCols
            If dc.Name = "规格" Then
                r("规格") = dr("规格")
            Else
                r("规格") = Nothing
            End If
        Next   
    Next
为什么r("规格")里没有数据,DataTables(fr & gps(i) &"核价")   有dc.Name = "规格"的列,并且有数据
红色部分要求的意思是,如果有DataTables(fr & gps(i) &"核价") 表里"规格"的列,则r("规格") = dr("规格")否则r("规格") = Nothing

[此贴子已经被作者于2020/3/14 0:07:56编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
sloyy
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2193 积分:13914 威望:0 精华:2 注册:2012/2/25 10:59:00
  发帖心情 Post By:2020/3/14 0:10:00 [只看该作者]

Dim drs =  datarow

 回到顶部
帅哥,在线噢!
hongye
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:482 积分:3231 威望:0 精华:0 注册:2011/3/15 12:49:00
  发帖心情 Post By:2020/3/14 0:17:00 [只看该作者]

应该是
        If dt.DataCols.Contains("规格") Then
            r("规格") = dr("规格")
        Else
            r("规格") = Nothing
        End If

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2020/3/14 1:55:00 [只看该作者]

  Dim drs = dt.Select("款号 = '" & kss & "'and 样衣号 like '%" & yks & "%'","_sortkey")     
这一句没有指明定义drs变量的类型!应为  Dim drs As Iist(Of datarow) = ……
[此贴子已经被作者于2020/3/14 1:55:45编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2020/3/14 2:04:00 [只看该作者]

       For Each dc As DataCol In dt.DataCols
            If dc.Name = "规格" Then
                r("规格") = dr("规格")
            Else
                r("规格") = Nothing
            End If
        Next   
您这个循环不但脱了裤子放屁,还会导致系统逻辑错误,如果遍历的最后一列不是规格列,会导致规格列永远为空!只需这一句即可:
         r("规格") = dr("规格")

[此贴子已经被作者于2020/3/14 2:04:39编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2020/3/14 7:13:00 [只看该作者]

按理,作为开发者,您在设计时应该很清楚地知道又没有“规格”这一列,您应该不会让用户手动删除吧?如果确实需要判断,这样即可:

if dt.dataCols.Contains("规格") = true
    r("规格") = dr("规格")
end if

 回到顶部