gpt4 book ai didi

c# - 从 C# 说明文件打开 Excel 电子表格时引发异常,其他用户正在使用该文件

转载 作者:行者123 更新时间:2023-12-04 22:10:58 24 4
gpt4 key购买 nike

我目前正在开发一个应用程序,该应用程序需要一个 Excel 电子表格,用户选择的位置,读取到 DataTable 中,然后存储在 sql server 数据库中。

该应用程序在我的开发环境中完美运行,但是当它部署到我的生产环境中时,会引发异常并显示以下消息。

Microsoft Jet 数据库引擎无法打开文件“.xls”。它已被其他用户独占打开,或者您需要权限才能查看其数据。

我读取excel文件的代码如下:

OleDbConnection objConn = null;

DataSet objDataset1 = null;

string fileLocation = GetFileLocation();

string sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;"
+ "Data Source=" + fileLocation
+ ";" + "Extended Properties=Excel 8.0;";

objConn = new OleDbConnection(sConnectionString);

objConn.Open(); //This is where the exception is thrown

OleDbCommand objCmdSelect = new OleDbCommand("SELECT * FROM [Sheet1$]", objConn);

OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();

objAdapter1.SelectCommand = objCmdSelect;

objDataset1 = new DataSet();

objAdapter1.Fill(objDataset1, "XLData");

DataTable dt = objDataset1.Tables["XLData"];

请注意,应用程序和 excel 文件位于同一域中的不同服务器上。

挖掘各种论坛和知识库,当“用户”无权使用该文件时,似乎会引发异常。尽管不建议将文件的权限设置为所有用户的完全访问权限。

除了文件权限之外,还有什么可能导致抛出此异常?

最佳答案

不确定这是否有帮助,但......

错误:

The Microsoft Jet database engine cannot open the file '.xls'.



似乎指向一个名为 .xls 的文件,而不是命名的东西,比如 myspreadsheet.xlsprodfile.xls .

这可能是一个很长的镜头,但是您可以进行一些调试以确保 Jet 尝试打开的文件确实存在吗?由于某种原因,文件名可能没有正确构造。

关于c# - 从 C# 说明文件打开 Excel 电子表格时引发异常,其他用户正在使用该文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1402715/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com