2012-11-13 9 views
6

Ich habe eine Excel-Datei und ich mehrere Zeilen in einem sheet.So Ich schreibe diesen Code aktualisiert werden soll:auf Excel mehr Update-Befehl ausführen

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 
     { 
     } 

und ich habe diesen Fehler:

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'.

und ich, wenn ich hinzufügen ; zu dieser Zeile:

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

ich diesen Fehler habe:

012.351.

Characters found after end of SQL statement.

Wie kann ich mehrere Anweisungen in Excel ausführen?

dank

+0

Sein fehlt entweder "AND"/"oder" - „update [Data14City $] eingestellt B_1_1 = 5, B_1_2 = 26, B_1_3 = 44, B_1_4 = 8 wobei id = 1 OR Satz B_1_1 = 0 , B_1_2 = 8, B_1_3 = 17, B_1_4 = 0 mit id = 2 " – Derek

+0

Bitte erläutern Sie mehr – Arian

+0

Ami richtig, wenn Sie versuchen zu erreichen: - UPDATE-Tabelle SET A WHERE ID = 1 ODER/UND SET B WHERE ID = 2? Hast du die obige Zeichenfolge ausprobiert? – Derek

Antwort

0

Sie brauchen nicht wirklich Ihre Updates so zu stapeln (in der Tat, wie oben erwähnt wurde, kann man nicht). Es dauert nicht mehr lange, sie einzeln auszuführen. Hier ist der Code, den ich verwendet habe, und es funktioniert gut (ich habe meine in einer Schleife, aber es funktioniert genauso gut, wenn Sie Ihre Updates nicht loopen können).

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();