WriteToServer:尚未初始化Connection属性。 sqlbulkcopy错误

c# sqlbulkcopy

在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();
}

一般承认的答案

一眼就可以看出,第一次通过foreach循环正确执行,然后是s.Close();正在清理SqlBulkCopy实例并清除其Connection属性,从而在第二次传递时创建异常。




许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因