以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  郁闷半天,这个代码要怎么修改?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=43435)

--  作者:mamuaiqing
--  发布时间:2013/12/6 23:28:00
--  郁闷半天,这个代码要怎么修改?

代码如下:有些地方省略了

Dim dd As DataTable = DataTables("表A")

Dim db As DataTable = DataTables("表B")

 

Vals = dd.GetUniqueValues("编号 = \'" & db.DataRows("订单编号") & "\'And 产品名称 = \'" & db.DataRows("产品名称") & "\'","计量单位","数量","编号","产品名称")
代码意思是从表A中根据表B的订单编号跟产品名称获得不重复的值,表B为DataTable,那下面的代码该怎么改?

"编号 = \'" & db.DataRows("订单编号") & "\'And 产品名称 = \'" & db.DataRows("产品名称") & "\'"


--  作者:yan2006l
--  发布时间:2013/12/7 0:11:00
--  

db.DataRows("订单编号")

没见过这种语法啊,到底是表B的第几行啊,如果是第一行就这样:db.DataRows(0)("订单编号")


--  作者:mamuaiqing
--  发布时间:2013/12/7 0:22:00
--  
以下是引用yan2006l在2013-12-7 0:11:00的发言:

db.DataRows("订单编号")

没见过这种语法啊,到底是表B的第几行啊,如果是第一行就这样:db.DataRows(0)("订单编号")

For Each dr5 As DataRow In db.DataRows \'循环 db 中的每一行
                Vals = dd.GetUniqueValues("编号 = \'" & dr5("订单编号") & "\'And 产品名称 = \'" & dr5("产品名称") & "\'","计量单位","数量","编号","产品名称")
                For i As Integer = 0 To Vals.Count - 1
                    Dim dr4 As DataRow = dd1.AddNew()
                    dr4("计量单位") = Vals(i)(0)
                    dr4("数量") = Vals(i)(1)
                    dr4("订单编号") = Vals(i)(2)
                    dr4("产品名称") = Vals(i)(3)
                Next
            Next

最早的代码是这样的,但循环的时候没实现获得不重复的值,因为db中存在重复的"订单编号"跟"产品名称",卡在这个位置了一直想不出办法指定条件


--  作者:mamuaiqing
--  发布时间:2013/12/7 1:20:00
--  
还是用Find来解决吧
--  作者:程兴刚
--  发布时间:2013/12/7 4:44:00
--  
提示:缺少行位置,否则,怎么知道取哪一行的值?其他您自己可以搞定!
[此贴子已经被作者于2013-12-7 4:44:33编辑过]

--  作者:longtechwj
--  发布时间:2013/12/7 10:28:00
--  
其实用SQL语句自动编码多方便
[此贴子已经被作者于2013-12-7 10:30:17编辑过]