C# Csharp无法使用oledb读取excel

C# Csharp无法使用oledb读取excel,c#,excel,oledb,C#,Excel,Oledb,我试图使用Visual Studio localhost从.aspx页面读取Excel文件。我将Excel保存在根文件夹中,但在尝试读取它时,会显示以下异常: Microsoft Office Access数据库引擎无法打开或写入 文件“”无效。它已被其他用户或您以独占方式打开 需要查看和写入其数据的权限 我的oledb代码 string connString = ConfigurationManager.ConnectionStrings["xlsx"].ConnectionString; O

我试图使用Visual Studio localhost从.aspx页面读取Excel文件。我将Excel保存在根文件夹中,但在尝试读取它时,会显示以下异常:

Microsoft Office Access数据库引擎无法打开或写入 文件“”无效。它已被其他用户或您以独占方式打开 需要查看和写入其数据的权限

我的oledb代码

string connString = ConfigurationManager.ConnectionStrings["xlsx"].ConnectionString;
OleDbConnection oledbConn = new OleDbConnection(connString);
try
{
    // Open connection
    oledbConn.Open();

    // Create OleDbCommand object and select data from worksheet Sheet1
    OleDbCommand cmd = new OleDbCommand("SELECT * FROM [Sheet1$]", oledbConn);

    // Create new OleDbDataAdapter
    OleDbDataAdapter oleda = new OleDbDataAdapter();

    oleda.SelectCommand = cmd;

    // Create a DataSet which will hold the data extracted from the worksheet.
    DataSet ds = new DataSet();

    // Fill the DataSet from the data extracted from the worksheet.
    oleda.Fill(ds, "Employees");

    // Bind the data to the GridView
    GridView1.DataSource = ds.Tables[0].DefaultView;
    GridView1.DataBind();
}
catch(Exception ex)
{
    throw ex;
}
finally
{
    // Close connection
    oledbConn.Close();
}
连接字符串

<connectionStrings>
    <add name="xls" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ExcelToParse.xls;Extended Properties=Excel 8.0"/>
    <add name="xlsx" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=ExcelToParse.xlsx;Extended Properties=Excel 12.0"/>
</connectionStrings>


有人能指出我做错了什么吗?

首先在命令提示符下运行此命令,以终止所有打开的Excel进程

taskkill /f /im excel.exe
您需要处理连接对象。然后将finally块中的代码更改为-

finally
{
    // Close connection
    oledbConn.Close();
    oledbConn.Dispose();
    System.Runtime.InteropServices.Marshal.ReleaseComObject(oledbConn);
}

请让我知道它是否有效。

闻起来像是用户权限问题。你能试着以管理员用户的身份运行吗?此外,如果内存可用,OLEDB可能会在不同的进程/用户空间中运行。。。这将消除我的第一个想法哈哈。。。但是这两个区域是我要找的,你为什么不使用强大的NPOI库呢?即使您的计算机上没有安装excel,它也能工作……请检查@Malachi在上述评论中的建议。