2012-11-13 14 views
6

Mam plik Excela i chcę aktualizować wiele wierszy w sheet.So piszę ten kod:wykonać polecenie aktualizacji na wielu 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 
     { 
     } 

i mam ten błąd:

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

i kiedy dodać ; do tej linii:

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

mam ten błąd:

Characters found after end of SQL statement.

Jak mogę wykonać wiele instrukcji w programie Excel?

dzięki

+0

Jej brakuje albo "I"/"OR": - „update [Data14City $] ustawić B_1_1 = 5, B_1_2 = 26, B_1_3 = 44, B_1_4 = 8, gdzie id = 1 lub zestaw B_1_1 = 0 , B_1_2 = 8, B_1_3 = 17, B_1_4 = 0 gdzie id = 2 " – Derek

+0

Proszę wyjaśnić więcej – Arian

+0

Ami w prawo mówiąc, że próbujesz osiągnąć: - UPDATE table SET A WHERE ID = 1 OR/AND SET B WHERE ID = 2? Czy próbowałeś powyższego ciągu? – Derek

Odpowiedz

0

Tak naprawdę nie trzeba układać swoje nowości w tym stylu (w rzeczywistości, jak zostało wskazane powyżej, nie można). Wykonanie ich pojedynczo nie zajmuje dużo czasu. Oto kod, którego używam i działa dobrze (mam w rzeczywistości pętlę, ale działa równie dobrze, jeśli nie możesz zapętlić swoich aktualizacji).

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(); 
Powiązane problemy