我不知道为什么数据没有进入SQL。有人可以检查一下,看看我的代码有什么问题吗?我最下面的代码从和MSDN页:http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy(v=vs.110).aspx使用SqlBulkCopy插入到SQL
Dim connectionString As String = "Server= "<servername>"; integrated security=true"
Using sourceConnection As SqlConnection = _
New SqlConnection(connectionString)
sourceConnection.Open()
Dim commandSourceData As SqlCommand = New SqlCommand(<TSQL>), sourceConnection)
Dim reader As SqlDataReader = commandSourceData.ExecuteReader
Using destinationConnection As SqlConnection = _
New SqlConnection(connectionString)
destinationConnection.Open()
Using bulkcopy As SqlBulkCopy = _
New SqlBulkCopy(destinationConnection)
bulkcopy.DestinationTableName = _
"<tableName>"
Try
bulkcopy.WriteToServer(reader)
Catch ex As Exception
Console.WriteLine(ex.Message)
Finally
reader.Close()
End Try
End Using
End Using
sourceConnection.Close()
End Using
是否有错误讯息?源查询是否导致任何记录?这应该不重要,但为了以防万一在bulkcopy.WriteToServer(reader)之前添加'bulkcopy.BatchSize = 500'和'bulkcopy.BulkCopyTimeout = 2400'。批量优化运行,但在这种情况下应该不会有太大影响,您可以使用值来查看哪个编号最适合您。如果您遇到超时情况,'bulkCopy.BulkCopyTimeout'实际上可能会有所帮助。 – George 2014-10-29 18:34:19
您是批量复制到新表还是已经存在的表?如果有新表,它确实存在吗?如果不存在,我不相信批量复制会创建一个表。如果已经存在,那么遵循Tim的建议。我不会在你的逻辑中看到任何特定的错误,你的代码实际上非常接近我的,并且在批量复制到临时表时我没有使用'ColumnMappings'。 PS:为了统治我们愚蠢而明显的东西,“”不是真正的目的地名称,是吗? –
George
2014-10-29 19:19:53
没有错误信息。我正在复制到我的数据库中的现有表。并且,不,ha,仅用于此发布。我正在阅读更多关于ColumnMappings的内容,但还没有多少运气。 –
2014-10-29 20:04:05