Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ';微软.Jet.OLEDB.4.0';提供程序未在本地计算机上注册_C#_Excel_Oledb - Fatal编程技术网

C# ';微软.Jet.OLEDB.4.0';提供程序未在本地计算机上注册

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

我正在尝试将一些数据从excel导入数据库。我从中获得了以下代码。我有一个x86体系结构,所以这不是问题所在。当我运行代码时,程序显示在
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位计算机