sqlbulkcopy 的一个奇怪的问题。
从一个xml文件内读取数据,转化成 dataset
里面有7个datatable,一一拷贝到数据库里面(sql2000)。
但其中最后2个datatable死活copy不成功,无报错。(前面几个datatable均成功复制了。)
Public Function copyTable(ByRef db As utils.Database, ByVal tableName As String, ByVal dt As DataTable) As String
Dim ret As String = String.Empty
Dim sbc As New SqlBulkCopy(db.getConn())
AddHandler sbc.SqlRowsCopied, AddressOf OnSqlRowsCopied
sbc.DestinationTableName = tableName
sbc.NotifyAfter = 100
For i As Integer = 0 To dt.Columns.Count - 1
sbc.ColumnMappings.Add(dt.Columns(i).ColumnName, dt.Columns(i).ColumnName)
Next
Try
sbc.WriteToServer(dt)
sbc.Close()
Catch ex As Exception
ret = ret & vbCrLf & ex.ToString
Debug.Print(ex.ToString)
End Try
Return ret
End Function
加了OnSqlRowsCopied事件,检测拷贝进度,
Private Sub OnSqlRowsCopied(ByVal sender As Object, _
ByVal args As SqlRowsCopiedEventArgs)
Debug.Print("Copied " & args.RowsCopied & " so far...")
End Sub
能看到调试信息
copied 100 so far
copied 200 so far
...
可在数据库企业管理器里面看不到任何copy过去的数据。
有人遇到过这样的问题吗?