Excel导入到数据库,出现的一个很烦人的问题

sadanzhizi 2009-03-13 05:53:25
我在做导入的时候,调试运行没有问题,但是直接打开一个IE浏览器,输入我程序的地址来运行,做导入的时候就要出错,提示Microsoft Jet数据库引擎打不开文件‘C:\Documents and Settings\zhongling\桌面\Company.xls’.它已经被别的用户以独占式打开,或没有查看数据的权限

奇怪的是为什么我调试运行都能导入成功的。excel文件是放在程序里的一个文件夹中的。直接下载下来输入内容然后批量导入数据的。

进程中也没有打开Excel,也没有打开这个文件。代码是这样写的:
filepath :excel文件的路径。

public class Leading
{
public Leading()
{
}


//从excel中得到数据存入表中:
public static DataTable ImportFromRxcel(string filepath, string sheetname)
{
DataTable dt = new DataTable("BT");
using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties=Excel 8.0;"))
{
conn.Open();
using (OleDbDataAdapter da = new OleDbDataAdapter("Select * From[" + sheetname + "]", conn))
{
da.Fill(dt);
}
}
return dt;
}


//获得sheetname(excel工作单)
public static ArrayList ExcelSheetName(string filepath)
{
ArrayList al = new ArrayList();
using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties=Excel 8.0;"))
{
conn.Open();
DataTable sheetNames = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
foreach (DataRow dr in sheetNames.Rows)
{
al.Add(dr[2]);
}
return al;
}
}
}
...全文
224 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
sadanzhizi 2009-03-13
  • 打赏
  • 举报
回复
问题解决了,是权限的问题,不过又有问题了
我让用户下载的excel模版已经设好了权限,不过用户下载下来后又没有了权限,导入数据的时候也会报错的。这应该怎么办呢?
sadanzhizi 2009-03-13
  • 打赏
  • 举报
回复
sadanzhizi 2009-03-13
  • 打赏
  • 举报
回复
问题解决了,是权限的问题,不过又有问题了
我让用户下载的excel模版已经设好了权限,不过用户下载下来后又没有了权限,导入数据的时候也会报错的。这应该怎么办呢?
Robin 2009-03-13
  • 打赏
  • 举报
回复
文件的权限,添加一个everyone的用户设置为全完控制
qinhl99 2009-03-13
  • 打赏
  • 举报
回复
具体的话,就是用户ASPNET没有权限!
qinhl99 2009-03-13
  • 打赏
  • 举报
回复
权限的问题!
sadanzhizi 2009-03-13
  • 打赏
  • 举报
回复
sadanzhizi 2009-03-13
  • 打赏
  • 举报
回复
那为什么我调试运行会没有错误呢,我是在自己机器上做的。
oranrry 2009-03-13
  • 打赏
  • 举报
回复
不好意思说错了
OleDbDataAdapter的话应该没有连接问题的

那样的话应该还是文件权限的问题吧
oranrry 2009-03-13
  • 打赏
  • 举报
回复
你从excel中得到数据存入表的方法中的conn没有Close
把它关闭以后再试试
Teng_s2000 2009-03-13
  • 打赏
  • 举报
回复
是不是打开那个文件了啊
lxf2000104 2009-03-13
  • 打赏
  • 举报
回复
web打开的话,xls是在服务器啊,你确定是发布在本地还是在服务器。这应该是权限的问题
sadanzhizi 2009-03-13
  • 打赏
  • 举报
回复
很着急,请大家帮帮忙吧

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧