上传EXCEL,一直提示文件不存在,发现系统获取的路径有问题,如何解决?

buyifly 2011-04-07 12:53:05
下面这个是从网上下载的
public DataSet ExecleDs(string filenameurl, string table)
{
string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + filenameurl + ";Extended Properties='Excel 8.0; HDR=YES; IMEX=1'";
OleDbConnection conn = new OleDbConnection(strConn);

OleDbDataAdapter odda = new OleDbDataAdapter("select * from [Sheet1$]", conn);
DataSet ds = new DataSet();
odda.Fill(ds, table);

return ds;

}
////////

真正上传操作
string strpath = fu_Input.PostedFile.FileName.ToString(); ; //获取Execl文件路径
string filename = fu_Input.FileName; //获取Execl文件名
DataSet ds = ExecleDs(strpath, filename);
就在这儿出现错误,
会提示

Microsoft Jet 数据库引擎找不到对象'C:\Program Files\Common Files\Microsoft Shared\DevServer\10.0\书法教材征订单.xls'。请确定对象是否存在,并正确地写出它的名称和路径。


不管你选择什么地方的东西上传,都会提示'C:\Program Files\Common Files\Microsoft Shared\DevServer\10.0\'目录下没有,确实没有呀,他的路径怎么老出错呢,不是我选择的上传文件的地址??


代码参考的这里的:http://www.cnblogs.com/boss504/articles/1182600.html
...全文
1166 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
璨layla 2012-03-11
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 net5354 的回复:]
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();//打开
OleDbDataAdapter odda = new OleDbDataAdapter("select * from [Sheet1$]", conn);
DataSet ds = new DataSet();
odda.Fill(ds,……
[/Quote]
我要如何知道我自己的Sheet1$是什么名字啊?这个sheet1$是什么意思呢?
net5354 2011-04-07
  • 打赏
  • 举报
回复
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();//打开
OleDbDataAdapter odda = new OleDbDataAdapter("select * from [Sheet1$]", conn);
DataSet ds = new DataSet();
odda.Fill(ds, table);
conn.Close();
wubudang 2011-04-07
  • 打赏
  • 举报
回复
fu_Input.SaveAs(path)这个函数是上传到服务器上的,path是上传到服务器上的路径。
buyifly 2011-04-07
  • 打赏
  • 举报
回复
代码参考的这里的:http://www.cnblogs.com/boss504/articles/1182600.html

没有需要上传:(怎么把选择的EXCEL文件先上传到服务器,再导入呀,最后导入成功再删除?
buyifly 2011-04-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 pittroll 的回复:]
先上传到服务器上,然后在读取服务器上的内容,然后再把服务器上的文件删除。你那没有上传到服务器上吧。
[/Quote]


可能是这问题,我全参考那网站上的内容,运行不起来:(
buyifly 2011-04-07
  • 打赏
  • 举报
回复
Microsoft Jet 数据库引擎找不到对象'D:\web\上传照片,
有出现这个错误,我是要上传EXCEL

然后把EXCEL数据导入数据库:(
子夜__ 2011-04-07
  • 打赏
  • 举报
回复
你先把
string strpath = fu_Input.PostedFile.FileName.ToString(); ; //获取Execl文件路径
string filename = fu_Input.FileName; //获取Execl文件名

这两个写死。

然后跑程序 如果不行的话 就是程序有问题。

上传是excel导入DataTable中的。

public void UploadInventoryData(string sheetName, string excelFile)
{
string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + excelFile + ";" + "Extended Properties=Excel 12.0;";
string strExcel = "select * from [" + sheetName + "$]";
DataSet ds = new DataSet();
OleDbConnection conns = new OleDbConnection(strConn);
conns.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, conns);
adapter.Fill(ds, "res");
conns.Close();
}


前台调用的时候

UploadInventoryData("sheet名字", @"E:全路径");

试试
PitTroll 2011-04-07
  • 打赏
  • 举报
回复
先上传到服务器上,然后在读取服务器上的内容,然后再把服务器上的文件删除。你那没有上传到服务器上吧。
Jeff Xiong 2011-04-07
  • 打赏
  • 举报
回复
或将filenameurl指定为绝对定位路径:如F:\bak\a.cvs
Jeff Xiong 2011-04-07
  • 打赏
  • 举报
回复
string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + filenameurl + ";Extended Properties='Excel 8.0; HDR=YES; IMEX=1'";

改为
string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + server.mappath(filenameurl)+ ";Extended Properties='Excel 8.0; HDR=YES; IMEX=1'";

62,244

社区成员

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

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

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

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