sqlbulkcopy只能向远程数据库更新一列,列多了就提示超时。
代码如下:
Dim mytable As New DataTable("集团产品信息表")
mytable.Columns.Add("UPC")
mytable.Columns.Add("英文名称")
mytable.Columns.Add("中文名称")
mytable.Columns.Add("单位")
mytable.Columns.Add("毛重")
mytable.Columns.Add("长")
mytable.Columns.Add("宽")
mytable.Columns.Add("高")
mytable.Columns.Add("件数")
mytable.Columns.Add("包装方式")
mytable.Columns.Add("中方办公室")
mytable.Columns.Add("中方负责人")
mytable.Columns.Add("备注")
Dim newrow As DataRow
Dim i As Integer
For i = 0 To dgv.Rows.Count - 1
newrow = mytable.NewRow
newrow("UPC") = dgv.Rows(i).Cells(0).Value
newrow("英文名称") = dgv.Rows(i).Cells(1).Value
newrow("中文名称") = dgv.Rows(i).Cells(2).Value
newrow("单位") = dgv.Rows(i).Cells(3).Value
newrow("毛重") = dgv.Rows(i).Cells(4).Value
newrow("长") = dgv.Rows(i).Cells(5).Value
newrow("宽") = dgv.Rows(i).Cells(6).Value
newrow("高") = dgv.Rows(i).Cells(7).Value
newrow("件数") = dgv.Rows(i).Cells(8).Value
newrow("包装方式") = dgv.Rows(i).Cells(9).Value
newrow("中方办公室") = dgv.Rows(i).Cells(10).Value
newrow("中方负责人") = dgv.Rows(i).Cells(11).Value
newrow("备注") = dgv.Rows(i).Cells(12).Value
mytable.Rows.Add(newrow)
Next
Dim bcp As SqlBulkCopy = New SqlBulkCopy("data source=xx.xx.xx.xx\SQL2005,1449;initial catalog=GTZD;uid=GTZD;pwd=GTZD123ZJ;max pool size=10000;Connect Timeout=5000")
bcp.DestinationTableName = "集团产品信息表"
bcp.WriteToServer(mytable)
UPC为数据表中的主键。只保留UPC一列的时候可以更新,但是增加其它列后就提示:超时时间已到。在操作完成之前超时时间已过或服务器未响应。
但是远程数据库服务器没问题,更新的同时用SQL Server Management Studio可以连接到数据库
表中共15000条数据。