Foxtable(狐表)用户栏目专家坐堂 → [求助]导入更新的问题。


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

主题:[求助]导入更新的问题。

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


加好友 发短信
等级:婴狐 帖子:44 积分:498 威望:0 精华:0 注册:2023/3/13 16:07:00
[求助]导入更新的问题。  发帖心情 Post By: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


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


加好友 发短信
等级:超级版主 帖子:110813 积分:564003 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/3/16 16:44:00 [只看该作者]

代码看不出什么问题。是不是窗口表做了筛选?看看主表有没有数据

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


加好友 发短信
等级:婴狐 帖子:44 积分:498 威望:0 精华:0 注册:2023/3/13 16:07:00
  发帖心情 Post By:2023/3/16 17:01:00 [只看该作者]

是用的窗口sql表,那怎么导入后表刷新呢?


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


加好友 发短信
等级:超级版主 帖子:110813 积分:564003 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/3/16 17:08:00 [只看该作者]

导入后保存一下,看看数据库有没有数据

……
            msgbox("新增" & newcount & "    " & "更新旧数据" & oldcount)
t.save
            t.ResumeRedraw()
        End If

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


加好友 发短信
等级:婴狐 帖子:44 积分:498 威望:0 精华:0 注册:2023/3/13 16:07:00
  发帖心情 Post By:2023/3/16 17:32:00 [只看该作者]

数据库里有更新的数据,就是窗口要怎么更新完后刷新呢?


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


加好友 发短信
等级:婴狐 帖子:44 积分:498 威望:0 精华:0 注册:2023/3/13 16:07:00
  发帖心情 Post By:2023/3/16 17:36:00 [只看该作者]

  Dim r As DataRow = t.DataTable.SQLFind("订单号 = '" & sheet(n, 0).text & "'")
如果用Find("订单号 = '" & sheet(n, 0).text & "'"),就可以即时更新。

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


加好友 发短信
等级:超级版主 帖子:110813 积分:564003 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:44 积分:498 威望:0 精华:0 注册:2023/3/13 16:07:00
  发帖心情 Post By:2023/3/16 17:46:00 [只看该作者]

耐心的指导,小白的我非常感谢!狐表有您更精彩。

 回到顶部