2011-06-10 2 views
1

Comment mettre à jour DataSet avec la mise à jour sql, puis Udate la base de données en C sharp. J'ai tellement de code qu'il fait quelque chose mais ne met pas réellement à jour la base de données. Je sens que je suis vraiment proche de comprendre cela, mais il me manque quelque chose ou je ne fais pas quelque chose de bien. mon code est ci-dessous si quelqu'un peut voir ce que c'est, je ne le fais pas s'il vous plaît faites le moi savoir, je regarde cela depuis 7 heures et je ne peux pas le comprendre.Comment mettre à jour DataSet avec la mise à jour sql, puis Udate la base de données en C sharp

  { DataSet oDS = new DataSet(); 
     OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=StaffAs.accdb;"); 
     conn.Open(); 

     // Create the DataTable "SAssign" in the Dataset and the OrdersDataAdapter 
     // UPDATE StaffAssignment SET StaffID = 4 WHERE (StaffID = 2) 
     OleDbDataAdapter oOrdersDataAdapter = new OleDbDataAdapter(new OleDbCommand("SELECT *  FROM StaffAssignment", conn)); 
     OleDbCommandBuilder oOrdersCmdBuilder = new OleDbCommandBuilder(oOrdersDataAdapter); 
     oOrdersDataAdapter.FillSchema(oDS, SchemaType.Source); 
oOrdersDataAdapter.UpdateCommand = new OleDbCommand(String.Format("UPDATE StaffAssignment SET StaffID = 4 WHERE (StaffID = 2)")); 
     DataTable pTable = oDS.Tables["Table"]; 
     pTable.TableName = "UpdateStaffA"; 

     oOrdersDataAdapter.Fill(pTable); 

     try 
     { 
      oOrdersDataAdapter.Update(pTable); 

     } 
     catch (OleDbException e) 
     { //Allows for update without violating interigty constainst 
      return; 
     } 
     conn.Close(); 

}

Répondre

-1

Après avoir exécuté la mise à jour, faites ceci:

pTable.Clear() 
oOrdersDataAdapter.Fill(pTable); 

Ce sera la base de données et actualisez retourner les nouveaux résultats.

+0

Donnez-lui une chance et vous le ferons savoir. Merci tas. – David

+0

Malheureusement, cela ne fonctionnait pas, il lançait une exception InvalidOperationException indiquant que Update ne pouvait pas trouver TableMapping ['Table'] ou DataTable 'Table'. – David

0

Rien ne semble pas avec votre code, il suffit de l'essayer:

try 
{ 
     oOrdersDataAdapter.Update(oDS, "Table"); 

} 
catch (OleDbException e) 
{ 
     //Allows for update without violating interigty constainst 
     return; 
} 
+0

Ok je vois ce que tu veux dire, ça marche super merci beaucoup :) Cela résout mon problème. Dors ici je viens. Merci encore!! – David

0

méthodes de mise à jour met à jour seulement les lignes qui leur RowState est égale à modifier

réglage tous RowState à DataRowState.Modified et d'appeler la la méthode de mise à jour vous aidera

Questions connexes