我正在尝试更新 Excel 工作表“客户”,并且该工作表存在于 Excel 文件中(该文件位于 Ubuntu 服务器上)。但是当我尝试通过
OLEDB
连接到文件时,出现错误:
Microsoft Access 数据库引擎找不到对象“客户”
我尝试在更新语句中使用
$
,但我得到了同样的错误。
我还检查了我是否具有访问服务器端文件的正确权限。
我正在使用此提供商:
Provider=Microsoft.ACE.OLEDB.12.0
我的连接字符串是:
$@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source ={" +DataSource + "};Extended Properties='Excel 12.0'"
数据源是:
"\\serverIP\\home\\data\\fileName.xlsx
string editString = "update [Customers$] set Name = '"+ gunaLineTextBox2.Text + "', phone ='"+ gunaLineTextBox3.Text + "', CSer1 ='"+ Stype1 + "', MainM3u ='"+ Murl + "', CSer2 ='"+ Stype2 + "', BackM3u='"+ Burl + "', CSer3 ='"+ Stype3 + "', secretM3u ='"+Surl+ "', Ex = '"+ gunaLineTextBox4.Text + "', notes='"+ gunaLineTextBox11.Text + "' where id ='"+id+"'";
SqlHelper.botEdit(editString, @"\\serverIP\home\data\m3u.xlsx", 0);
public static void botEdit(string editString, string DataSource, int x)
{
try
{
OleDbCommand com = new OleDbCommand();
OleDbConnection con = new OleDbConnection($@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source ={" +DataSource + "};Extended Properties='Excel 12.0'");// Xml;HDR=YES;
con.Open();
com.Connection = con;
com.CommandText = editString;
com.ExecuteNonQuery();
if (x > 1)
{
MessageBox.Show("Done");
}
con.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}