以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 同步数据 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=183961) |
-- 作者:kaituozhe -- 发布时间:2022/11/21 10:27:00 -- 同步数据 Dim cmd As New SQL Command Dim dt As DataTable cmd.Connectio nName = “”AAAAAA" cmd.Comma ndText = "SEL ECT 交易户名,交易卡号,交易账号,年度,期间 From {银行明细}" dt = cmd.Execut eReader() For Each dr As DataRow In dt.DataRows If DataTables("银行目录").Find("交易卡号 = \'" & dr("交易卡号") & "\'and 交易账号 = \'" & dr("交易账号") & "\'and 交易户名 = \'" & dr("交易户名") & "\' and 年度 = \'" & dr("年度") & "\'and 期间 = \'" & dr("期间") & "\' ") Is Nothing Then Dim nr As DataRow = DataTables("银行目录").AddNew() For Each dc As DataCol In dt.DataCols nr(dc.name) = dr(dc.name) Next End If Next 银行明细大约有70万行,上述代码运行时间至少的12小时,有没有办法快点?
|
-- 作者:有点蓝 -- 发布时间:2022/11/21 10:36:00 -- 用sql insert into 银行目录(交易户名,交易卡号,交易账号,年度,期间) select 交易户名,交易卡号,交易账号,年度,期间 from 银行明细 as a where not exists(select * from 银行目录 as b where a.交易户名 = b.交易户名 and a.交易卡号=b...自己补充完整..)
|
-- 作者:kaituozhe -- 发布时间:2022/11/21 14:59:00 -- 去数据库里写语句对吧? |
-- 作者:有点蓝 -- 发布时间:2022/11/21 14:59:00 -- 用SQLCommand执行 |
-- 作者:kaituozhe -- 发布时间:2022/11/23 11:13:00 -- Dim cmd As New SQLCo mmand Dim dt As DataTable cmd.Connec ti cmd.Comma ndText = "ins ert into 银行目录(交易户名,交易卡号,交易账号,年度,期间) Se lect 交易户名,交易卡号,交易账号,年度,期间 from 银行明细 As a where not exi sts(Se lect * from 银行目录 As b wh ere a.交易户名 = b.交易户名 And a.交易卡号=b.交易卡号 And a.交易账号=b.交易账号 And a.年度=b.年度 And a.期间=b.期间)" cmd.Execut eNonQuery() 上述代码我看不出什么错误,但是结果只有交易卡号及交易户名,其他的数据没有出来,银行明细中肯定有上述数据,是什么原因?
|
-- 作者:kaituozhe -- 发布时间:2022/11/23 11:15:00 -- Dim cmd As New SQLCo mmand Dim dt As DataTable cmd.Connec tio nName = “”AAAAAA" cmd.Comma ndText = "ins ert into 银行目录(交易户名,交易卡号,交易账号,年度,期间) Se lect 交易户名,交易卡号,交易账号,年度,期间 from 银行明细 As a where not exi sts(Se lect * from 银行目录 As b wh ere a.交易户名 = b.交易户名 And a.交易卡号=b.交易卡号 And a.交易账号=b.交易账号 And a.年度=b.年度 And a.期间=b.期间)" cmd.Execut eNonQuery() 上述代码我看不出什么错误,但是结果只有交易卡号及交易户名,其他的数据没有出来,银行明细中肯定有上述数据,是什么原因?
|
-- 作者:kaituozhe -- 发布时间:2022/11/23 11:21:00 -- 现在可以了 |
-- 作者:有点蓝 -- 发布时间:2022/11/23 11:23:00 -- 肯定没有同时符合这些条件的数据,到数据库里查询看看 Select 交易户名,交易卡号,交易账号,年度,期间 from 银行明细 As a where not exists(Select * from 银行目录 As b where a.交易户名 = b.交易户名 And a.交易卡号=b.交易卡号 And a.交易账号=b.交易账号 And a.年度=b.年度 And a.期间=b.期间)
|
-- 作者:kaituozhe -- 发布时间:2022/11/23 11:23:00 -- 出来的数据还是都有重复的 |
-- 作者:有点蓝 -- 发布时间:2022/11/23 11:26:00 -- 重复加上distinct Select distinct 交易户名,交易卡号,交易账号,年度,期间 from 银行明细
|