以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]关于表A从表B动态获取数据 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=127791) |
-- 作者:工匠 -- 发布时间:2018/11/22 10:17:00 -- [求助]关于表A从表B动态获取数据 老师好! 现在有个需求,请帮做个按钮代码,谢谢! 1.现在有2个不同数据源的2个结构基本一样的表A和表B(表A在“现”数据源,表B在“原”数据源,表A和表B都有一列“单号”列,“原”数据源表B是另外文员在不断的录入数据) 2.现在要实现:在窗口做个按钮“从表B取数据”,实现每点击一次按钮“从表B取数据”,先判断表A“单号”列的(单号数据)如果在表B的“单号”列里是否存在,如果没有,就把表B“单号”列里的(单号数据)复制新增到表A“单号”列。(就是表A单号列数据要和表B“单号”列数据一样,但是都不能重复) 3.数据库是SQL数据库,表A和表B都都没有完全加载所有数据的 万分感谢!
|
-- 作者:有点甜 -- 发布时间:2018/11/22 10:21:00 -- 参考
http://www.foxtable.com/webhelp/scr/2137.htm
|
-- 作者:工匠 -- 发布时间:2018/11/22 13:35:00 -- 谢谢有点甜老师,早上问题根据帮助已经实现一半需求了,请麻烦再帮在现基础上做个优化:过滤条件后才复制新增:1.日期:从2018-01-01 00:00 开始的数据 2.状态为“未完成” 的数据,3.单号不重复的数据,万分感谢! Dim cmd As New SQLCommand Dim dt As DataTable Dim sCols() As String = {"单号", "名称", "数量", "日期",“状态”} Dim dCols() As String = {"单号", "名称", "订单数量", "日期", “状态”} cmd.C cmd.CommandText = "SELECT * Fr om {表B}" dt = cmd.ExecuteReader() For Each dr As DataRow In dt.DataRows Dim nr As DataRow = DataTables("表A").AddNew() For i As Integer =0 To sCols.Length -1 nr(dCols(i)) = dr(sCols(i)) Next Next [此贴子已经被作者于2018/11/22 15:11:52编辑过]
|
-- 作者:有点甜 -- 发布时间:2018/11/22 16:31:00 -- Dim dhs As String = DataTables("表A").sqlGetComboListString("单号").replace("|", "\',\'") cmd.CommandText = "SELECT * From {表B} as a where 日期 > #2018-01-01# and 状态=\'未完成\' and 单号 not in (\'" & dhs & "\')" dt = cmd.ExecuteReader() For Each dr As DataRow In dt.DataRows Dim nr As DataRow = DataTables("表A").AddNew() For i As Integer =0 To sCols.Length -1 nr(dCols(i)) = dr(sCols(i)) Next Next |