以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 帮我看看哪里错了? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=147319) |
-- 作者:hongye -- 发布时间: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 -- 发布时间:2020/3/14 0:10:00 -- Dim drs = datarow |
-- 作者:hongye -- 发布时间:2020/3/14 0:17:00 -- 应该是 If dt.DataCols.Contains("规格") Then r("规格") = dr("规格") Else r("规格") = Nothing End If |
-- 作者:程兴刚 -- 发布时间: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编辑过]
|
-- 作者:程兴刚 -- 发布时间: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编辑过]
|
-- 作者:程兴刚 -- 发布时间:2020/3/14 7:13:00 -- 按理,作为开发者,您在设计时应该很清楚地知道又没有“规格”这一列,您应该不会让用户手动删除吧?如果确实需要判断,这样即可: r("规格") = dr("规格") end if
|