我有一个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
{
}
我收到了这个错误:
查询表达式中的语法错误(缺少运算符)'id = 1 update [Data14City $] set B_1_1 = 0,B_1_2 = 8,B_1_3 = 17,B_1_4 = 0,其中id = 2'。
我将;
添加到此行:
strUpd += "update [Data14City$] set B_1_1 = 5 ,B_1_2 = 26 ,B_1_3 = 44 ,B_1_4 = 8 where id = 1;";
我收到了这个错误:
在SQL语句结束后找到的字符。
如何在Excel中执行多个语句?
感谢
答案 0 :(得分:0)
你真的不需要像这样堆叠你的更新(事实上,正如上面已经指出的那样,你不能)。单独执行它们不需要太长时间。这是我一直在使用的代码,它工作正常(我实际上已经在循环中,但如果你无法循环更新,它将同样有效。)
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();