在c#中运行sqlbulkcopy,我收到一个错误: WriteToServer:尚未初始化Connection属性。
它发生在WriteToServer命令中。连接已打开。
using (SqlBulkCopy s = new SqlBulkCopy(conn))
{
foreach (DataTable dt in ds.Tables)
{
s.DestinationTableName = "tmp_" + dt.TableName;
s.NotifyAfter = 5000;
s.SqlRowsCopied += new SqlRowsCopiedEventHandler(s_SqlRowsCopied);
s.WriteToServer(dt);
s.Close();
}
}
正确代码:
using (SqlBulkCopy s = new SqlBulkCopy(conn))
{
foreach (DataTable dt in ds.Tables)
{
s.DestinationTableName = "tmp_" + dt.TableName;
s.NotifyAfter = 5000;
s.SqlRowsCopied += new SqlRowsCopiedEventHandler(s_SqlRowsCopied);
s.WriteToServer(dt);
}
s.Close();
}
答案 0 :(得分:1)
我一眼就会猜到第一次通过foreach
循环正确执行,然后s.Close();
正在清理SqlBulkCopy
实例并清除其Connection
属性,从而在第二次传递中创建例外。