在Excel上执行多个更新命令

我有一个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 { } 

我得到这个错误:

在查询expression式'id = 1 update [Data14City $] set B_1_1 = 0,B_1_2 = 8,B_1_3 = 17,B_1_4 = 0,其中id = 2'的语法错误(缺less运算符)。

当我join时 到这一行:

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

我得到这个错误:

在SQL语句结束后find的字符。

我如何可以在Excel中执行多个语句?

谢谢

你并不需要像这样把你的更新堆积起来(事实上,正如上面已经指出的那样,你不能)。 单独执行它们不需要太长的时间。 这里是我一直使用的代码,它工作正常(我实际上有我的循环,但它会同样好,如果你不能循环你的更新)。

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