Foxtable(狐表)用户栏目专家坐堂 → 【新手教程】狐步系列一--从两个表的某一列分别获取不重复数据,合并去重后写入某张表


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

主题:【新手教程】狐步系列一--从两个表的某一列分别获取不重复数据,合并去重后写入某张表

帅哥哟,离线,有人找我吗?
lichenwudi
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:28 积分:292 威望:0 精华:0 注册:2012/6/27 22:01:00
【新手教程】狐步系列一--从两个表的某一列分别获取不重复数据,合并去重后写入某张表  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2012/9/6 20:22:00 [只看该作者]

应该有问题吧?

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


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


加好友 发短信
等级:幼狐 帖子:181 积分:1432 威望:0 精华:0 注册:2011/11/11 12:08:00
  发帖心情 Post By: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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:28 积分:292 威望:0 精华:0 注册:2012/6/27 22:01:00
  发帖心情 Post By:2012/9/7 13:31:00 [只看该作者]


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

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


加好友 发短信
等级:婴狐 帖子:28 积分:292 威望:0 精华:0 注册:2012/6/27 22:01:00
  发帖心情 Post By:2012/9/7 13:39:00 [只看该作者]

经测试 确实存在 错误 已修正

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/9/7 13:50:00 [只看该作者]


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

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


加好友 发短信
等级:婴狐 帖子:28 积分:292 威望:0 精华:0 注册:2012/6/27 22:01:00
  发帖心情 Post By:2012/9/8 16:41:00 [只看该作者]

欢迎各位大侠 对本系列教程提出宝贵意见

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


加好友 发短信
等级:幼狐 帖子:139 积分:1021 威望:0 精华:0 注册:2012/1/18 14:40:00
  发帖心情 Post By:2012/9/8 23:54:00 [只看该作者]

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


 回到顶部