WriteToServer: свойство подключения не было инициализировано. ошибка sqlbulkcopy - PullRequest
1 голос
/ 14 января 2010

работает sqlbulkcopy в c #, и я получаю ошибку: 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();
}

1 Ответ

1 голос
/ 14 января 2010

С первого взгляда я бы предположил, что первый проход через цикл foreach выполняется правильно, затем s.Close(); очищает экземпляр SqlBulkCopy и очищает его свойство Connection, создавая таким образом исключение для второго пройти.

...