【发布时间】:2011-10-01 19:38:12
【问题描述】:
我在尝试更新 Excel 工作表时收到此错误:
Server Error in '/ReadExcelData_Csharp' Application.
Operation must use an updateable query.
这是我正在使用的代码:
querys = "UPDATE [Sheet1$] "+"SET [Number]=" +s.Trim()+ " WHERE [Number]=" + s2.Trim() ;
objcmc = new OleDbCommand(querys, conn);
objcmc.ExecuteNonQuery();
任何帮助将不胜感激。
这是我使用的连接:
if (strFileType.Trim() == ".xls")
{
connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strNewPath + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=2\"";
}
else if (strFileType.Trim() == ".xlsx")
{
connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + strNewPath + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=2\"";
}
【问题讨论】:
-
您使用什么连接字符串来创建
conn对象? -
我用一个用于 xls,一个用于 xlsx
-
if (strFileType.Trim() == ".xls") { connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strNewPath + ";Extended Properties=\" Excel 8.0;HDR=是;IMEX=2\""; } else if (strFileType.Trim() == ".xlsx") { connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + strNewPath + ";Extended Properties=\"Excel 12.0;HDR=Yes ;IMEX=2\""; }
-
在
conn对象打开后检查其Mode属性是值得的。将该值与msdn.microsoft.com/en-us/library/ms675792%28v=VS.85%29.aspx 处的列表进行比较,以确保连接处于正确模式