changwen313
changwen313
采纳率50%
2017-09-07 13:25 阅读 1.4k
已采纳

.net excel导入到数据库本地测试正常,部署在网络里就不能成功。请大神指点

10

代码占这么多,大神应该可以看明白,现在是部署后,网络访问,本地文件已经拷贝到服务器上了,但是就是不往下走了,请指点。
if (fuload.FileName == "")
{
lbmsg.Text = "请选择文件";
return;
}

            if (this.RadioButtonList1.SelectedValue == "")
            {
                lbmsg.Text = "请选择人人员类型";
                return;
            }

            string fileExtenSion;
            fileExtenSion = Path.GetExtension(fuload.FileName);
            if (fileExtenSion.ToLower() != ".xls" && fileExtenSion.ToLower() != ".xlsx")
            {
                lbmsg.Text = "上传的文件格式不正确";
                return;
            }
            try
            {
                string FileName = "App_Data/" + Path.GetFileName(fuload.FileName);

                if (File.Exists(Server.MapPath(FileName)))
                {

                    File.Delete(Server.MapPath(FileName));

                }
                fuload.SaveAs(Server.MapPath(FileName));


                //HDR=Yes,这代表第一行是标题,不做为数据使用 ,如果用HDR=NO,则表示第一行不是标题,做为数据来使用。系统默认的是YES
                string connstr2003 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath(FileName) + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";
                string connstr2007 = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Server.MapPath(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();
                string sql = "select * from [Sheet1$]";
                OleDbCommand cmd = new OleDbCommand(sql, conn);
                DataTable dt = new DataTable();
                OleDbDataReader sdr = cmd.ExecuteReader();
                dt.Load(sdr);
                sdr.Close();
                conn.Close();
                Label2.Text = "Excel里的数据内容:";
               // GridView1.DataSource = dt;
              // GridView1.DataBind();

       if (dt.Columns.Count != 14)
                {
                    lbmsg.Text = "请选择正确的数据表格1";
                    return;
                }
                if (dt.Rows.Count < 1)
                {
                    lbmsg.Text = "请选择正确的数据表格2";
                    return;
                }
                if (dt.Columns[0].ColumnName.ToString() != "核算单元代码" ||
                    dt.Columns[1].ColumnName.ToString() != "险种代码" ||
                    dt.Columns[2].ColumnName.ToString() != "财务代码" || 
                    dt.Columns[3].ColumnName.ToString() != "险种名称" || 
                    dt.Columns[4].ColumnName.ToString() != "渠道属性" || 
                    dt.Columns[5].ColumnName.ToString() != "人员属性" || 
                    dt.Columns[6].ColumnName.ToString() != "期交首年计佣保费" || 
                    dt.Columns[7].ColumnName.ToString() != "期交续年计佣保费" || 
                    dt.Columns[8].ColumnName.ToString() != "趸交计佣保费" || 
                    dt.Columns[9].ColumnName.ToString() != "期交首年直接佣金" || 
                    dt.Columns[10].ColumnName.ToString() != "期交续年直接佣金" || 
                    dt.Columns[11].ColumnName.ToString() != "趸交直接佣金" || 
                    dt.Columns[12].ColumnName.ToString() != "直接佣金合计" || 
                    dt.Columns[13].ColumnName.ToString() != "日期")
                {

                    lbmsg.Text = "请选择正确的数据表格3";
                    return;
                }
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • 已采纳
    showbo GoCityPass新加坡曼谷通票 2017-09-08 01:29

    是不是导入xlsx出错?而且报什么错误也没用说

    一般服务器是没有Microsoft.ACE.OLEDB.12.0这个驱动的,因为服务器不会安装office2007+,要下载后再服务器安装,而且注意64位系统程序池要启用32位应用程序

    Access2007/2010系统驱动程序下载地址
    window2012 未在本地计算机上注册“microsoft.ACE.oledb.12.0”

    点赞 1 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 2017-09-08 00:25

    本地正常,服务器不正常,可能是权限的原因,或者服务器缺少库

    点赞 评论 复制链接分享
  • li1340089590 li1340089590 2017-09-08 01:25

    权限问题,看下excel上传到服务器上面的文件夹,路径地址是不是对everyone开放读写权限

    点赞 评论 复制链接分享

相关推荐