在Excel上执行多个更新命令

Ari*_*ian 6 c# sql excel ole c#-4.0

我有一个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
        {
        }
Run Code Online (Sandbox Code Playgroud)

我收到了这个错误:

查询表达式'id = 1 update [Data14City $]中的语法错误(缺少运算符)设置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;";
Run Code Online (Sandbox Code Playgroud)

我收到了这个错误:

SQL语句结束后找到的字符.

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

谢谢

Sid*_*and 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();
Run Code Online (Sandbox Code Playgroud)