2012-11-13 58 views
6

Tôi có một file Excel và tôi muốn cập nhật nhiều hàng trong một sheet.So tôi viết mã này:thực hiện nhiều lệnh cập nhật trên 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 
     { 
     } 

và tôi đã nhận lỗi này:

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

và tôi khi tôi thêm ; đến dòng này:

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

tôi đã nhận lỗi này:

012.351.

Characters found after end of SQL statement.

cách tôi có thể thực hiện nhiều câu lệnh trong Excel?

cảm ơn

+0

nó thiếu một trong hai "VÀ"/"OR": - "cập nhật [Data14City $] thiết B_1_1 = 5, B_1_2 = 26, B_1_3 = 44, B_1_4 = 8 nơi id = 1 HOẶC bộ B_1_1 = 0 , B_1_2 = 8, B_1_3 = 17, B_1_4 = 0 trong đó id = 2 " – Derek

+0

Vui lòng giải thích thêm – Arian

+0

Ami đúng khi bạn đang cố gắng đạt được: - CẬP NHẬT bảng SET A WHERE ID = 1 OR/AND SET B WHERE ID = 2? Bạn đã thử chuỗi ở trên chưa? – Derek

Trả lời

0

Bạn không thực sự cần phải cập nhật các cập nhật của bạn như vậy (thực tế, như đã được chỉ ra ở trên, bạn không thể). Nó không mất nhiều thời gian để thực hiện chúng riêng lẻ. Đây là mã tôi đã sử dụng và nó hoạt động tốt (Tôi thực sự có tôi trong một vòng lặp, nhưng nó sẽ làm việc tốt như nhau nếu bạn không thể lặp lại các bản cập nhật của bạn).

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(); 
Các vấn đề liên quan