ADO.NET - Updating Multiple DataTablesSqlDataAdapter plusieurs tables et transactions
Je trouve la question ci-dessus qui est exactement ce que je cherche et d'essayer de mettre en œuvre une solution ...
Je suis en train de voir une meilleure solution pour la mise à jour multiples table dans sqlserver 2008 et assurer la transaction sur les tables multiples. Si l'insertion dans une table échoue, annulez les mises à jour précédentes sur d'autres tables.
- SqlDataAdapter met à jour une seule table à la fois
- Je sais que nous pouvons faire la transaction sur un DataAdapter à la fois, mais besoin de mettre à jour plusieurs tables
modifiés ci-dessous sont les codes de la réponse fournie ci-dessus , mais il erreur avec le dataadapter. Je pense que je dois définir les commandes d'insertion, de mise à jour et de suppression, mais je ne sais pas comment cela fonctionne s'il y a plusieurs tables ??? quelqu'un peut-il remplir le lien manquant?
using (SqlConnection con = new SqlConnection(SqlServerConnectionString))
{
con.Open();
//table is an array of datatable and contains data to be inserted
for (int i = 0; i < table.Length; i++)
{
ds.Tables.Add(table[i]);
}
SqlTransaction trans = con.BeginTransaction();
SqlDataAdapter dataAdapter = new SqlDataAdapter();
//Need to set insert,select, update, delete???? on multiple tables?
//dataAdapter.Fill(ds);
dataAdapter.InsertCommand.Transaction = trans; //null object error here
dataAdapter.UpdateCommand.Transaction = trans;
dataAdapter.DeleteCommand.Transaction = trans;
try
{
dataAdapter.Update(ds);
trans.Commit();
}
catch(Exception ex)
{
trans.Rollback();
}
Lisez le 2ème commentaire de cette réponse. – LarsTech
Je l'ai lu plusieurs fois avant de poster; Malheureusement, je suis toujours confus. Mais à la recherche de meilleures pratiques de mise en œuvre de ce ... – wirble