我有一个 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 where 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中执行多条语句?
thanks
您实际上并不需要像这样堆积更新(事实上,正如上面所指出的,您不能)。单独执行它们并不需要太长时间。这是我一直在使用的代码,它运行良好(实际上我的代码处于循环状态,但如果您无法循环更新,它也会同样运行良好)。
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();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)