2012-11-13 4 views
6

J'ai un fichier Excel et je veux mettre à jour plusieurs lignes dans un sheet.So Je vous écris ce code:exécuter la commande multiple de mise à jour sur Excel

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 je suis arrivé cette erreur:

Syntax error (missing operator) in query expression 'id = 1 update [Data14City$] set B_1_1 = 0 ,B_1_2 = 8 ,B_1_3 = 17 ,B_1_4 = 0 where 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;"; 

Je suis arrivé cette erreur:

Characters found after end of SQL statement.

comment je peux exécuter plusieurs instruction dans Excel?

grâce

+0

Son manque "AND"/"OR": - « mise à jour [Data14City $] set B_1_1 = 5, B_1_2 = 26, B_1_3 = 44, B_1_4 = 8 où id = 1 ou ensemble B_1_1 = 0 , B_1_2 = 8, B_1_3 = 17, B_1_4 = 0 où id = 2 " – Derek

+0

S'il vous plaît expliquer plus – Arian

+0

Ami droit en disant que vous essayez d'atteindre: - Mise à jour tableau SET A WHERE ID = 1 OU/ET SET B WHERE ID = 2? Avez-vous essayé la chaîne ci-dessus? – Derek

Répondre

0

Vous n'avez pas vraiment besoin d'empiler vos mises à jour comme ça (en fait, comme cela a été souligné ci-dessus, vous ne pouvez pas). Cela ne prend pas beaucoup plus de temps pour les exécuter individuellement. Voici le code que j'ai utilisé et il fonctionne bien (j'ai en fait le mien dans une boucle, mais ça marchera aussi 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(); 
Questions connexes