OleDbException。没有给出一个或多个必需参数的值

时间:2012-09-05 15:19:42

标签: c# excel

string connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Application.StartupPath + "\\a.xlsx" + ";Extended Properties='Excel 12.0 Xml;HDR=No'";
        OleDbConnection conn = new OleDbConnection(connString);
        OleDbCommand cmd = new OleDbCommand("Update [tablenameeee$] SET A1='15'", conn);
        conn.Open();
        cmd.ExecuteNonQuery();
        conn.Close();

我想访问excel中的特定单元格,并更改其值。但我得到了例外

OleDbException。没有给出一个或多个必需参数的值。解决方案是什么?

2 个答案:

答案 0 :(得分:3)

如果您使用HDR = NO,列名称为F1,F2 F3等......

OleDbCommand cmd = new OleDbCommand("Update [tablenameeee$] SET F1='15'", conn); 

但我认为你应该指定一个WHERE子句来划分受影响的行 记住,使用OleDb你不应该考虑行/列,而是记录。

作为替代方案,如果您确切知道要更新的行/列,则可以使用

OleDbCommand cmd = new OleDbCommand("Update [tablenameeee$A1:A1] SET F1='15'", conn); 

答案 1 :(得分:0)

也许你需要一个where子句

Update [tablenameeee$] set [F1] = 15 where [F2] = 3

或者如果您想访问一个特定的单元格,并且您知道它是哪个单元格,那么Steve的解决方案就像手套一样适合您。