从Excel中读数据到数据库,本地VS运行都成功,网站发布后不能读取数据

wangge0702 2012-09-21 10:27:35
先上代码
String path = Server.MapPath("~/UploadExcel/");

string FileName = path + DateTime.Now.ToString("yyyyMMddHHmmss") + fuload.FileName;

fuload.PostedFile.SaveAs(FileName);

string connstr2003 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FileName + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";

string connstr2007 = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + FileName + ";Extended Properties=\"Excel 12.0;HDR=YES\"";

OleDbConnection conn;
if (fileExtenSion.ToLower() == ".xls")
{
conn = new OleDbConnection(connstr2003);
}
else
{
conn = new OleDbConnection(connstr2007);
}

conn.Open();
…………

小弟经过跟踪,发现执行到 conn.Open()时就挂了,
连接字符串是不是有问题啊,或者和服务器设置有关,因为以前挂在别的服务器上时没问题
大哥大姐大神们帮忙看看,小菜这厢有礼了
...全文
308 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
code-fans 2013-05-13
  • 打赏
  • 举报
回复
引用 8 楼 wangge0702 的回复:
[Quote=引用 7 楼 的回复:] 另外,你看报告的错误信息,一看就能明白了 [/Quote] 找到原因了  Oledb.4.0在64位系统上不支持,在对应的 IIS 应用程序池中,“设置应用程序池默认属性”/“常规”/”启用32位应用程序”,设置为 true; 谢谢大侠了
谢谢,本人也遇到这个问题,刚看到这个帖子,解决了,感谢lz
Zh_java_2009 2013-05-13
  • 打赏
  • 举报
回复
我也遇见了 谢谢。。 好贴
孟子E章 2012-09-21
  • 打赏
  • 举报
回复
另外,你看报告的错误信息,一看就能明白了
孟子E章 2012-09-21
  • 打赏
  • 举报
回复
你传的是什么文件?xlsx?服务器安装Microsoft.ACE.OLEDB.12.0;驱动了吗
wangge0702 2012-09-21
  • 打赏
  • 举报
回复
以前挂在另一个服务器上没问题,现在换了一个服务器就不行了,在本地VS里面调试也没问题,大神们觉得问题可能出在哪了呢
wangge0702 2012-09-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

fileExtenSion赋值了吗
[/Quote]

嗯 在前面赋值了

string fileExtenSion;

fileExtenSion = Path.GetExtension(fuload.FileName);
wangge0702 2012-09-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

tring FileName = path + DateTime.Now.ToString("yyyyMMddHHmmss") + System.IO.Path.GetFileName(fuload.FileName);
[/Quote]

我试了试 还是不行
孟子E章 2012-09-21
  • 打赏
  • 举报
回复
fileExtenSion赋值了吗
孟子E章 2012-09-21
  • 打赏
  • 举报
回复
tring FileName = path + DateTime.Now.ToString("yyyyMMddHHmmss") + System.IO.Path.GetFileName(fuload.FileName);
wangge0702 2012-09-21
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

另外,你看报告的错误信息,一看就能明白了
[/Quote]

找到原因了 
Oledb.4.0在64位系统上不支持,在对应的 IIS 应用程序池中,“设置应用程序池默认属性”/“常规”/”启用32位应用程序”,设置为 true;
谢谢大侠了

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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