BulkCopy WriteToServer () insère dans une mauvaise colonne

c# datatable sql sqlbulkcopy sql-server

Question

J'essaie d'écrire un DataTable dans ma table de destination sur Sql Server. DataTable dt contient seulement une colonne et son Email appelé. Ma table de destination contient le tpid , le lastname , l' age , la date et l' email . C'est le code que j'utilise pour la copie en bloc:

using (SqlConnection sqlConn = new SqlConnection(sqlCs))
{
    sqlConn.Open();
    using (SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConn.ConnectionString, SqlBulkCopyOptions.KeepIdentity | SqlBulkCopyOptions.UseInternalTransaction))
    {
        bulkCopy.DestinationTableName = destinationTableName;
        bulkCopy.WriteToServer(dt);
    }
}

Ce que je vois, c'est que dans ma table de destination, la valeur Email de mon DataTable est insérée dans la colonne tpid au lieu de l' email . Je n'utilise aucun mappage de colonne ici, mais la copie en bloc ne doit-elle pas correspondre automatiquement à un e- mail avec e-mail ?

Réponse populaire

Pensez à essayer cette cartographie:

SqlBulkCopyColumnMapping mapMAIL = new SqlBulkCopyColumnMapping("Email", "email");
bulkCopy.ColumnMappings.Add(mapMAIL);

Vous pouvez interroger le schéma MySQL pour les tables source et cible et générer des correspondances automatiques en fonction des noms de champs, si vous le souhaitez.



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