1

c#でsqlbulkcopyを実行すると、次のエラーが発生します:WriteToServer:接続プロパティが初期化されていません。

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

1 に答える 1

1

foreach一見すると、ループの最初のパスが正しく実行され、次にインスタンスs.Close();がクリーンアップされてそのプロパティがクリアされ、2番目のパスで例外が作成されていると思います。SqlBulkCopyConnection

于 2010-01-14T01:43:11.070 に答える