Foxtable(狐表)用户栏目专家坐堂 → 请给一下,excel导入sql数据库中避免重复值的代码


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

主题:请给一下,excel导入sql数据库中避免重复值的代码

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/10 19:03:00 [显示全部帖子]

导入foxtable还是sql数据库?

 

如果是foxtable,可以导入以后,删除重复;也可以用代码直接操作判断后导入 http://www.foxtable.com/help/topics/2334.htm


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/10 19:08:00 [显示全部帖子]

sql数据库,不行,导入以后,你再剔除重复就行。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/10 19:11:00 [显示全部帖子]

Dim i As Integer
For i  = DataTables("表A").DataRows.Count-1 To 0 Step -1
    Dim dr As DataRow = DataTables("表A").DataRows(i)
    Dim dr2 As DataRow = DataTables("表A").Find("第一列='" & dr("第一列") & "' and 第二列='" & dr("第二列") & "' and _Identify <> " & dr("_Identify"))
    If dr2 IsNot Nothing Then
        dr2.Delete
    End If
Next


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/10 19:56:00 [显示全部帖子]

红色代码改成自己的

 

Dim dlg As new OpenFileDialog
dlg.Filter = "Excel文件|*.xls"
Dim fl As String

If dlg.ShowDialog = DialogResult.OK Then
    fl = dlg.FileName
   
    Dim dic As Dictionary(Of String ,String)
    Dim cmd As new SQLCommand
    cmd.CommandText = "select * From {khda}"
    Dim dt As DataTable = cmd.ExecuteReader(True)
    Dim book As new XLS.Book(fl)
    Dim sheet As XLS.Sheet = book.Sheets("sheet1")
    If sheet(0,1).Value<>"客户编码" Then
        msgbox("字段不匹配")
        Return
    End If
    If sheet(0,2).Value<>"客户名称" Then
        msgbox("字段不匹配")
        Return
    End If
    If sheet(0,3).Value<>"安装地址" Then
        msgbox("字段不匹配")
        Return
    End If
    If sheet(0,4).Value<>"主卡卡号" Then
        msgbox("主卡卡号顺序不匹配")
        Return
    End If
    If sheet(0,5).Value<>"主卡金额" Then
        msgbox("主卡金额顺序不匹配")
        Return
    End If
    If sheet(0,6).Value<>"副卡卡号" Then
        msgbox("副卡卡号顺序不匹配")
        Return
    End If
    If sheet(0,7).Value<>"副卡金额" Then
        msgbox("副卡金额顺序不匹配")
        Return
    End If
    
    
    Dim nms() As String = {"编号","产品","客户","雇员","单价","折扣","数量","日期"}
    For n As Integer = 1 To Sheet.Rows.Count -1
        Dim bh As String = sheet(n,0).Text
        Dim dr As DataRow = dt.Find("编号 = '" & bh & "'")
        If dr Is Nothing Then '如果不存在同编号的订单
            dr =  dt.AddNew()
        End If
        For m As Integer = 0 To nms.Length - 1
            dr(nms(m)) = Sheet(n,m).Value
        Next

        dr.Save
    Next

End If

[此贴子已经被作者于2014-11-10 19:57:01编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/10 20:45:00 [显示全部帖子]

 你msgbox看一下对应值是什么

 回到顶部