WriteToServer: La propriété de connexion n'a pas été initialisée. erreur sqlbulkcopy

c# sqlbulkcopy

Question

Si je lance sqlbulkcopy en c # et que je reçois une erreur: WriteToServer: La propriété de connexion n'a pas été initialisée.

cela se passe à la commande WriteToServer. La connexion est ouverte.

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

Code correct:

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

Réponse acceptée

En un coup d'œil, je suppose que le premier passage dans la boucle foreach s'exécute correctement, puis s.Close(); est en train de nettoyer l'instance de SqlBulkCopy et d'effacer sa propriété Connection , créant ainsi une exception lors du second passage.



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi