以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请给一下,excel导入sql数据库中避免重复值的代码  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=59772)

--  作者:有点甜
--  发布时间:2014/11/10 19:03:00
--  

导入foxtable还是sql数据库?

 

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


--  作者:客人
--  发布时间:2014/11/10 19:07:00
--  
是sql数据库
--  作者:有点甜
--  发布时间:2014/11/10 19:08:00
--  
sql数据库,不行,导入以后,你再剔除重复就行。
--  作者:有点甜
--  发布时间: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


--  作者:有点甜
--  发布时间: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编辑过]

--  作者:有点甜
--  发布时间:2014/11/10 20:45:00
--  
 你msgbox看一下对应值是什么