Excel:插入查询抛出错误信息"Operation must use an updateable query"
Excel: Insert query throws error message "Operation must use an updateable query"
我 运行 在尝试插入 Excel 工作表时出错
这是我名为 Sheet1 的 Excel 工作表的布局:
id name
1 test
2 apple
3 pear
我想将此数据插入 Excel 工作表:
4 pineapple
下面是我的代码:
try{
string srcExcel = "C:\Users\Desktop\insertTest.xlsx";
System.Data.OleDb.OleDbConnection MyConnection;
System.Data.OleDb.OleDbCommand myCommand = new System.Data.OleDb.OleDbCommand();
string sql = null;
MyConnection = new OleDbConnection("Provider = Microsoft.ACE.OLEDB.12.0; Data Source = " + srcExcel + "; Extended Properties = 'Excel 8.0;HDR=Yes;IMEX=1'");
MyConnection.Open();
myCommand.Connection = MyConnection;
sql = "Insert Into [Sheet1$] (id,name) Values('4','pineapple')";
myCommand.CommandText = sql;
myCommand.ExecuteNonQuery();
MessageBox.Show("Insert Success!");
MyConnection.Close();
}
catch (Exception eInnerData)
{
MessageBox.Show("Method: getInnerData " + eInnerData.ToString());
}
在 运行 这段代码之后抛出并捕获了异常,并显示此错误消息:
Operation must use an updateable query
我使用的是微软 Excel 2010
从连接字符串中删除 IMEX=1。还要确保文件不是只读的并且当前未在 Excel
中打开
对于它的价值,我建议使用 EPPlus 库之类的东西而不是 Access db 驱动程序来读写 xlsx 文件
当访问数据库或 excel 文档存储在您没有写入权限的文件夹中时,会发生此错误。您可以阅读该文件,但无法对其进行更改。
请确保您有权以管理员身份访问此文件夹或运行您的程序。
您可以通过在文件属性的安全选项卡下检查您是否具有访问权限来确认对 Windows 的写入权限。
我 运行 在尝试插入 Excel 工作表时出错
这是我名为 Sheet1 的 Excel 工作表的布局:
id name
1 test
2 apple
3 pear
我想将此数据插入 Excel 工作表:
4 pineapple
下面是我的代码:
try{
string srcExcel = "C:\Users\Desktop\insertTest.xlsx";
System.Data.OleDb.OleDbConnection MyConnection;
System.Data.OleDb.OleDbCommand myCommand = new System.Data.OleDb.OleDbCommand();
string sql = null;
MyConnection = new OleDbConnection("Provider = Microsoft.ACE.OLEDB.12.0; Data Source = " + srcExcel + "; Extended Properties = 'Excel 8.0;HDR=Yes;IMEX=1'");
MyConnection.Open();
myCommand.Connection = MyConnection;
sql = "Insert Into [Sheet1$] (id,name) Values('4','pineapple')";
myCommand.CommandText = sql;
myCommand.ExecuteNonQuery();
MessageBox.Show("Insert Success!");
MyConnection.Close();
}
catch (Exception eInnerData)
{
MessageBox.Show("Method: getInnerData " + eInnerData.ToString());
}
在 运行 这段代码之后抛出并捕获了异常,并显示此错误消息:
Operation must use an updateable query
我使用的是微软 Excel 2010
从连接字符串中删除 IMEX=1。还要确保文件不是只读的并且当前未在 Excel
中打开对于它的价值,我建议使用 EPPlus 库之类的东西而不是 Access db 驱动程序来读写 xlsx 文件
当访问数据库或 excel 文档存储在您没有写入权限的文件夹中时,会发生此错误。您可以阅读该文件,但无法对其进行更改。
请确保您有权以管理员身份访问此文件夹或运行您的程序。
您可以通过在文件属性的安全选项卡下检查您是否具有访问权限来确认对 Windows 的写入权限。