gpt4 book ai didi

c# - 在 Excel 上执行多个更新命令

转载 作者:太空狗 更新时间:2023-10-29 22:01:22 25 4
gpt4 key购买 nike

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

我得到了这个错误:

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

当我将 ; 添加到这一行时:

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

我遇到了这个错误:

Characters found after end of SQL statement.

如何在 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();

关于c# - 在 Excel 上执行多个更新命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13359748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com