虾米@ 2019-05-14 17:42 采纳率: 11.1%
浏览 349
已结题

asp .net中gridview导入excel路径出现问题怎么解决。

asp.net项目,发布到IIS上运行。
//导入excel号码表事件
protected void BtnImport_Click(object sender, EventArgs e)
{
string filePath= this.FileUpload1.PostedFile.FileName;//获取表名称
if (filePath != "")
{
if (filePath.Contains("xlsx"))//判断文件是否存在
{
InputExcel(filePath);
numberCount = getNumCount("default");//默认显示总条数
pagecount= numberCount/ pageSize + getoverPage(); //获取默认页数,不能整除则加1,能整除加0
ViewState["pagecount"] = pagecount; //将新增后的总页数存入ViewState中
show_phoneNumber("default");
}
else
{
Response.Write("请检查您选择的文件是否为Excel文件!谢谢!");
}
}

        else
        {
            Response.Write("请先选择导入文件后,再执行导入!谢谢!");
        }
    }

//导入Excel表格
private void InputExcel(string pPath)
{
string conn = "Provider =Microsoft.ACE.OLEDB.12.0; Data Source =" +Server.MapPath(pPath) + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
OleDbConnection oleCon = new OleDbConnection(conn);
oleCon.Open(); //代码报错行
string Sql = "select * from [Sheet1$]";
OleDbDataAdapter mycommand = new OleDbDataAdapter(Sql, oleCon);
DataSet ds = new DataSet();
mycommand.Fill(ds, "[Sheet1$]");
oleCon.Close();
.......绑定字段写入数据库等操作

                    }


                    在导入表格时,只有表格放在C:\Program Files (x86)\IIS Express下才能成功,如果不是这个路径就会在oleCon.Open()报错:....不是本地对象,打断点发现默认路径总是C:\Program Files (x86)\IIS Express,这个该如何改才能保证我本地表格放在任意盘任意位置都能成功?在网上找了很多获取路径的办法都没成功,求大神指点。
  • 写回答

2条回答 默认 最新

  • threenewbee 2019-05-14 18:29
    关注

    你那个路径是本地地址,在开发的时候客户机服务器是一个机器,没事,真正部署后,你服务器当然没有客户机的文件,就出错了。你得先上传,然后用你上传保存文件的路径。

    评论

报告相同问题?

悬赏问题

  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥15 如何修改pca中的feature函数
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况