Microsoft Access 数据库引擎在 .NET 框架上找不到 C# 中的对象

问题描述 投票:0回答:1

我正在尝试更新 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);
     }
}
c# .net excel database oledb
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.