Foxtable(狐表)用户栏目专家坐堂 → 导入excel怎么实现先判断sql数据库里面所在单位、姓名、电话号码三个字段是否有值,若无就新增,若有就不改变,直接跳过。


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

主题:导入excel怎么实现先判断sql数据库里面所在单位、姓名、电话号码三个字段是否有值,若无就新增,若有就不改变,直接跳过。

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
导入excel怎么实现先判断sql数据库里面所在单位、姓名、电话号码三个字段是否有值,若无就新增,若有就不改变,直接跳过。  发帖心情 Post By:2020/4/23 10:30:00 [只看该作者]

导入excel怎么实现先判断sql数据库里面所在单位、姓名、电话号码三个字段是否有值,若无就新增,若有就不改变,直接跳过。


当前代码如下:(当前代码实现的是删除所在单位等于_UserGroup 的所有数据,想实现在删除前,先判断sql数据库里面所在单位、姓名、电话号码三个字段是否有值,若无就新增,若有就不改变,直接跳过。
Dim dlg As New OpenFileDialog
dlg.Filter = "Excel文件|*.xls;*.xlsx"
If dlg.ShowDialog =DialogResult.OK Then
    DataTables("干警信息").sqlDeleteFor("所在单位='"& _UserGroup & "'")
    Dim t As Table = Tables("干警信息")
    t.StopRedraw()
    Dim Book As New XLS.Book(dlg.FileName)
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    For n As Integer = 1 To Sheet.Rows.Count -1
        Dim r As DataRow = t.DataTable.Find("姓名 = '" & sheet(n,0).text & "'")
        If r Is Nothing Then r = t.DataTable.AddNew()
        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
    t.ResumeRedraw()
End If

DataTables("干警信息").LoadFilter="所在单位='"& _UserGroup & "'"
DataTables("干警信息").Load

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


加好友 发短信
等级:超级版主 帖子:107440 积分:546479 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/23 10:38:00 [只看该作者]

Dim dlg As New OpenFileDialog
dlg.Filter = "Excel文件|*.xls;*.xlsx"
If dlg.ShowDialog =DialogResult.OK Then
    'DataTables("干警信息").sqlDeleteFor("所在单位='"& _UserGroup & "'")
    Dim t As Table = Tables("干警信息")
    t.StopRedraw()
    Dim Book As New XLS.Book(dlg.FileName)
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    For n As Integer = 1 To Sheet.Rows.Count -1
        Dim r As DataRow = t.DataTable.Find("姓名 = '" & sheet(n,0).text & "' and 单位='" & sheet(n,xxx).text & "' and 电话号码='" & sheet(n,xxx2).text & "'")
        If r Is Nothing Then 
r = t.DataTable.AddNew()
        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
END IF
    Next
    t.ResumeRedraw()
End If

DataTables("干警信息").LoadFilter="所在单位='"& _UserGroup & "'"
DataTables("干警信息").Load

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)Dim dlg As New OpenFileDialogdlg.F...  发帖心情 Post By:2020/4/23 10:56:00 [只看该作者]

谢谢有点蓝老师   

备注:sheet(n,0) 某字段在excel中的实际排序列  默认从0开始
Dim r As DataRow = t.DataTable.Find("姓名 = '" & sheet(n,2).text & "'and 所在单位='" & sheet(n,0).text & "' and 电话='" & sheet(n,3).text & "'")


 回到顶部