以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  【新手教程】狐步系列一--从两个表的某一列分别获取不重复数据,合并去重后写入某张表  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=23248)

--  作者:lichenwudi
--  发布时间:2012/9/6 18:30:00
--  【新手教程】狐步系列一--从两个表的某一列分别获取不重复数据,合并去重后写入某张表
狐步教程一从两个表的某一列分别获取不重复数据,合并去重后写入某张表
我作为一个初学者现在在开发自己应用的仓库管理软件 这个过程中有很多疑问也有很多收获,总的来说取之于众高手,服务于大众,从现在起,会将我开发过程中用到的实例 以详细教程的方式 发布上来,共同成长
下面这段代码特别感谢 狐狸爸爸  朱版  水木情缘  寒寻以及其他在这个过程中帮助了我的朋友们
感谢曹版 Randboy等人的更正
\'定义
Dim Customers As List(Of String)
Dim Customers2 As List(Of String)
Dim drs As List(Of DataRow)
\'分别从2张表获取不重复的数据
Customers = DataTables("坯布进仓表").GetUniqueValues("[产品] <> \'\'", "产品")
Customers2 = DataTables("产品进仓表").GetUniqueValues("[品种] <> \'\'", "品种")
\'将第一组数据中不存在第二组中的数据加入第二组(合并去重)
For Each Customer As String In customers  \'遍历数组customers 内的每一个数据 customer
    If  not Customers2.contains(Customer) Then   \'如果Customer不包含在customer2里面
        Customers2.Add(Customer)           \'customer加入数组customer2
    End If
Next
\'开始写入 先判断行数够不够写入第二组数据 不够一次性加够
If DataTables("实验").DataRows.count <Customers2.count Then   \'判断当前表的行数够不够
    DataTables("实验").AddNew(Customers2.count-DataTables("实验").dataRows.count  )  \'如果不够就一次性加够 行数差额
End If

\'将第二组数据写入相应的表相应的列
For i As Integer = 0 To Customers2.Count -1     \'从第一行开始输入
    DataTables("实验").DataRows(i)("第五列") =Customers2(i)   \'写入列的对应行与Customers2数组对应项的值
Next
\'保存数据
DataTables("实验").save()

[此贴子已经被作者于2012-9-7 13:43:58编辑过]

--  作者:czy
--  发布时间:2012/9/6 20:22:00
--  

应该有问题吧?

我感觉有逻辑问题,既然实验表总行数少于Customers2集合数,还用总行数去减集合数再增加行,而此时这个值是负数,怎么可能增加呢?


--  作者:RandyBoy
--  发布时间:2012/9/7 8:42:00
--  
\'开始写入 先判断行数够不够写入第二组数据 不够一次性加够
dim cnts as integer = Customers2.count - DataTables("实验").DataRows.count
If cnts > 0 Then   \'判断当前表的行数够不够
    DataTables("实验").AddNew(cnts)  \'如果不够就一次性加够行数差额
End If

--  作者:lichenwudi
--  发布时间:2012/9/7 13:31:00
--  

[此贴子已经被作者于2012-9-7 13:43:10编辑过]

--  作者:lichenwudi
--  发布时间:2012/9/7 13:39:00
--  
经测试 确实存在 错误 已修正
--  作者:lin_hailun
--  发布时间:2012/9/7 13:50:00
--  

绝对的写错吧......哪有绝对值。
[此贴子已经被作者于2012-9-7 13:50:46编辑过]

--  作者:lichenwudi
--  发布时间:2012/9/8 16:41:00
--  
欢迎各位大侠 对本系列教程提出宝贵意见
--  作者:woiz
--  发布时间:2012/9/8 23:54:00
--  

用这样的代码,还不如直接用SQL语句生成一个查询表,然后再复制过去不重复行,来的简单吧?