C# ';微软.Jet.OLEDB.4.0';提供程序未在本地计算机上注册
我正在尝试将一些数据从excel导入数据库。我从中获得了以下代码。我有一个x86体系结构,所以这不是问题所在。当我运行代码时,程序显示在C# ';微软.Jet.OLEDB.4.0';提供程序未在本地计算机上注册,c#,excel,oledb,C#,Excel,Oledb,我正在尝试将一些数据从excel导入数据库。我从中获得了以下代码。我有一个x86体系结构,所以这不是问题所在。当我运行代码时,程序显示在connection.Open()“Microsoft.Jet.OLEDB.4.0”提供程序未在本地计算机上注册。有什么想法吗 string excelConnectionString = @"Provider=Microsoft .Jet.OLEDB.4.0;Data Source=C://suc.xls;Extended Propertie
connection.Open()代码>“Microsoft.Jet.OLEDB.4.0”提供程序未在本地计算机上注册。有什么想法吗
string excelConnectionString = @"Provider=Microsoft
.Jet.OLEDB.4.0;Data Source=C://suc.xls;Extended
Properties=""Excel 8.0;HDR=YES;""";
// Create Connection to Excel Workbook
using (OleDbConnection connection =
new OleDbConnection(excelConnectionString))
{
OleDbCommand command = new OleDbCommand
("Select ID,Data FROM [Data$]", connection);
connection.Open();
// Create DbDataReader to Data Worksheet
using (DbDataReader dr = command.ExecuteReader())
{
// SQL Server Connection String
string sqlConnectionString = "Data Source=.;Initial Catalog=Test;Integrated Security=True";
// Bulk Copy to SQL Server
using (SqlBulkCopy bulkCopy =
new SqlBulkCopy(sqlConnectionString))
{
bulkCopy.DestinationTableName = "ExcelData";
bulkCopy.WriteToServer(dr);
}
}
}
我假设生成此错误的计算机上存在正确版本的Excel
和Interop.Excel.dll
文件?由于Jet提供程序位于interop DLL中,我认为这是最可能的解释。如果您在64位计算机上运行代码,并且它是一个web项目,则打开IIS,右键单击应用程序池并单击高级设置。将顶部的第二个属性:Enable 32位应用程序设置为True,这将解决问题。excel版本现在是正确的,但仍然显示相同的错误。Interop.Excel.dll未被请求。我已指定我使用的是32位计算机