以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  导入数据  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=175043)

--  作者:aaa1234
--  发布时间:2022/2/17 15:13:00
--  导入数据
老师您好我想问一下我的数据表里面有id 跟 free 的数据 ,我想问一下如果id相同覆盖相加应该怎么写
--  作者:有点蓝
--  发布时间:2022/2/17 15:20:00
--  
参考:http://www.foxtable.com/webhelp/topics/2334.htm
--  作者:aaa1234
--  发布时间:2022/2/17 15:39:00
--  
就是相同id free覆盖相加怎么弄,这个只能覆盖
--  作者:有点蓝
--  发布时间:2022/2/17 15:50:00
--  
For n As Integer = 1 To Sheet.Rows.Count -1
    
Dim bh As String = sheet(n,0).Text
    
Dim dr As DataRow = DataTables("订单").Find("编号 = \'" & bh & "\'")
    If 
dr Is Nothing Then \'如果不存在同编号的订单
        
dr =  DataTables("订单").AddNew()
dr(“free”) = Sheet(n,xx列索引).Value
else
dr(“free”) = dr(“free”) + Sheet(n,xx列索引).Value
    End If
    For 
m As Integer = 0 To nms.Length - 1
        
dr(nms(m)) = Sheet(n,m).Value
    Next
Next

--  作者:aaa1234
--  发布时间:2022/2/18 10:16:00
--  
Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog
dlg.Filter= "Excel文件|*.xlsx|Word文件|*.doc|Access文件|*.mdb" \'设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮
Dim Book As New XLS.Book(dlg.FileName)
Dim Sheet As XLS.Sheet=Book.Sheets(0)
Tables("a111").StopRedraw()
\'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
Dim nms() As String = {"trackingID","fee"}

\'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
For n As Integer = 1 To Sheet.Rows.Count -1
    Dim bh As String = sheet(n,0).Text
    Dim dr As DataRow = DataTables("a111").Find("trackingID = \'" & bh & "\'")
    If dr Is Nothing Then \'如果不存在同编号的订单
        dr =  DataTables("a111").AddNew()
dr("fee") = Sheet(n,).Value
Else
dr("fee") = dr("fee") + Sheet(n,1).Value
    End If
    For m As Integer = 0 To nms.Length - 1
        dr(nms(m)) = Sheet(n,m).Value
    Next
Next
Tables("a111").ResumeRedraw()
msgbox("导入成功")
End If

--  作者:aaa1234
--  发布时间:2022/2/18 10:17:00
--  
老师foxtable的旧数据跟新数据不能相加呀
--  作者:aaa1234
--  发布时间:2022/2/18 10:18:00
--  
导入表跟foxtable都是一样的格式与字段
--  作者:有点蓝
--  发布时间:2022/2/18 10:24:00
--  
Tables("a111").StopRedraw()
\'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
\'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
For n As Integer = 1 To Sheet.Rows.Count -1
    Dim bh As String = sheet(n,0).Text
    Dim dr As DataRow = DataTables("a111").Find("trackingID = \'" & bh & "\'")
    If dr Is Nothing Then \'如果不存在同编号的订单
        dr =  DataTables("a111").AddNew()
dr("trackingID") = bh
dr("fee") = Sheet(n,1).Value
Else
dr("fee") = dr("fee") + Sheet(n,1).Value
    End If
Next
Tables("a111").ResumeRedraw()
msgbox("导入成功")
End If

--  作者:aaa1234
--  发布时间:2022/2/18 11:23:00
--  
11
[此贴子已经被作者于2022/2/18 11:25:29编辑过]

--  作者:有点蓝
--  发布时间:2022/2/18 11:27:00
--  
按8楼的用法填充数据