exécuter une command de mise à jour multiple sur Excel

J'ai un file Excel et je souhaite mettre à jour plusieurs lignes dans une feuille. J'écris ce code:

OleDbConnection cn = new OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " + serverPath + ";Extended Properties = Excel 8.0;"); try { strUpd = ""; strUpd += "update [Data14City$] set B_1_1 = 5 ,B_1_2 = 26 ,B_1_3 = 44 ,B_1_4 = 8 where id = 1 "; strUpd += " update [Data14City$] set B_1_1 = 0 ,B_1_2 = 8 ,B_1_3 = 17 ,B_1_4 = 0 where id = 2"; cn.Open(); OleDbCommand cmdInsert = new OleDbCommand(strUpd, cn); cmdInsert.ExecuteNonQuery(); cn.Close(); } catch { } 

et j'ai eu cette erreur:

Erreur de syntaxe (opérateur manquant) dans l'expression de requête 'id = 1 update [Data14City $] set B_1_1 = 0, B_1_2 = 8, B_1_3 = 17, B_1_4 = 0 où id = 2'.

et moi quand j'ajoute ; à cette ligne:

 strUpd += "update [Data14City$] set B_1_1 = 5 ,B_1_2 = 26 ,B_1_3 = 44 ,B_1_4 = 8 where id = 1;"; 

J'ai eu cette erreur:

Caractères trouvés après la fin de l'instruction SQL.

Comment puis-je exécuter une déclaration multiple dans Excel?

Merci

Vous n'avez pas vraiment besoin d'emstackr vos mises à jour comme ça (en fait, comme cela a été indiqué plus haut, vous ne pouvez pas). Il ne faut pas beaucoup plus longtime pour les exécuter individuellement. Voici le code que j'ai utilisé et ça fonctionne bien (j'ai en fait le mien en boucle, mais ça va très bien si vous ne pouvez pas boucler vos mises à jour).

 cn.Open(); using (OleDbCommand cmd = cn.CreateCommand()) { cmd.CommandText = "update [Data14City$] set B_1_1 = 5 ,B_1_2 = 26 ,B_1_3 = 44 ,B_1_4 = 8 where id = 1"; cmd.ExecuteNonQuery(); cmd.CommandText = "update [Data14City$] set B_1_1 = 0 ,B_1_2 = 8 ,B_1_3 = 17 ,B_1_4 = 0 where id = 2"; cmd.ExecuteNonQuery(); // ... and so on } cn.Close(); { cn.Open(); using (OleDbCommand cmd = cn.CreateCommand()) { cmd.CommandText = "update [Data14City$] set B_1_1 = 5 ,B_1_2 = 26 ,B_1_3 = 44 ,B_1_4 = 8 where id = 1"; cmd.ExecuteNonQuery(); cmd.CommandText = "update [Data14City$] set B_1_1 = 0 ,B_1_2 = 8 ,B_1_3 = 17 ,B_1_4 = 0 where id = 2"; cmd.ExecuteNonQuery(); // ... and so on } cn.Close(); } cn.Open(); using (OleDbCommand cmd = cn.CreateCommand()) { cmd.CommandText = "update [Data14City$] set B_1_1 = 5 ,B_1_2 = 26 ,B_1_3 = 44 ,B_1_4 = 8 where id = 1"; cmd.ExecuteNonQuery(); cmd.CommandText = "update [Data14City$] set B_1_1 = 0 ,B_1_2 = 8 ,B_1_3 = 17 ,B_1_4 = 0 where id = 2"; cmd.ExecuteNonQuery(); // ... and so on } cn.Close();