以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]导入更新的问题。 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=185779) |
-- 作者:myzy -- 发布时间:2023/3/16 16:40:00 -- [求助]导入更新的问题。 老师:我这段代码可以根据订单号判定新增,但不能把excel的数据更新到窗口表里。麻烦看看是那没有对呢? Dim dlg As New OpenFileDialog dlg.Filter = "Excel文件|*.xls;*.xlsx" If dlg.ShowDialog =DialogResult.OK Then Dim t As Table = Tables("cwbc_Table1") t.StopRedraw() Dim Book As New XLS.Book(dlg.FileName) Dim Sheet As XLS.Sheet = Book.Sheets(0) Dim newcount As Integer = 0 Dim oldcount As Integer = 0 For n As Integer = 1 To Sheet.Rows.Count -1 Dim r As DataRow = t.DataTable.SQLFind("订单号 = \'" & sheet(n, 0).text & "\'") If r Is Nothing Then r = t.DataTable.AddNew() newcount += 1 Else oldcount += 1 End If For i As Integer = 0 To sheet.Cols.Count -1 Dim cname As String = sheet(0, i).text If t.Cols.Contains(cname) Then r(cname) = sheet(n, i).Text End If Next Next msgbox("新增" & newcount & " " & "更新旧数据" & oldcount) t.ResumeRedraw() End If |
-- 作者:有点蓝 -- 发布时间:2023/3/16 16:44:00 -- 代码看不出什么问题。是不是窗口表做了筛选?看看主表有没有数据 |
-- 作者:myzy -- 发布时间:2023/3/16 17:01:00 -- 是用的窗口sql表,那怎么导入后表刷新呢? |
-- 作者:有点蓝 -- 发布时间:2023/3/16 17:08:00 -- 导入后保存一下,看看数据库有没有数据 …… msgbox("新增" & newcount & " " & "更新旧数据" & oldcount) t.save t.ResumeRedraw() End If |
-- 作者:myzy -- 发布时间:2023/3/16 17:32:00 -- 数据库里有更新的数据,就是窗口要怎么更新完后刷新呢? |
-- 作者:myzy -- 发布时间:2023/3/16 17:36:00 -- Dim r As DataRow = t.DataTable.SQLFind("订单号 = \'" & sheet(n, 0).text & "\'") 如果用Find("订单号 = \'" & sheet(n, 0).text & "\'"),就可以即时更新。
|
-- 作者:有点蓝 -- 发布时间:2023/3/16 17:39:00 -- 如果数据没有完全加载就每更新一行就保存一下 …… For i As Integer = 0 To sheet.Cols.Count -1 Dim cname As String = sheet(0, i).text If t.Cols.Contains(cname) Then r(cname) = sheet(n, i).Text End If Next r.save Next msgbox("新增" & newcount & " " & "更新旧数据" & oldcount) t.ResumeRedraw() End If |
-- 作者:myzy -- 发布时间:2023/3/16 17:46:00 -- 耐心的指导,小白的我非常感谢!狐表有您更精彩。 |