开发者社区> 问答> 正文

C#ASP导入Excel文件报错了 ?报错

一开始,建了一个测试网站,能导入Excel表格,没有报错,然后并入到其他程序时出错了,因为用到的Microsoft.Jet.OLEDB.4.0好像是32位组件,就在iis那里启用了32位应用程序,然后就报错了, (Microsoft Jet 数据库引擎打不开文件''。 它已经被别的用户以独占方式打开,或没有查看数据的权限。) 然后把测试网站也放到iis里面去,也报错了,没用iis就不报错,怎么回事啊?导入代码如下:
protected void btnGetTableName_Click(object sender, EventArgs e)
{
this.ddlTables.Items.Clear();
string sFileName = this.fuMainOne.PostedFile.FileName.ToString();
_sFileName = sFileName;
if (sFileName.Length == 0)
{
ClientScript.RegisterStartupScript(this.GetType(), "", "alert('您没有选择要求导入的Excel文件!')");
return;
}
//sFileName = this.hiddenContent1.Value;
using (OleDbConnection oledbConn = new OleDbConnection())
{
try
{
oledbConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sFileName + ";Extended Properties=Excel 8.0;";
oledbConn.Open();
using (DataTable dtOledb = oledbConn.GetSchema("Tables"))
{
using (DataTableReader dtReader = new DataTableReader(dtOledb))
{
while (dtReader.Read())
{
this.ddlTables.Items.Add(dtReader["TABLE_NAME"].ToString());
}
}
}
string SQLString = "select * from [" + ddlTables.SelectedValue.ToString() + "]";
OleDbCommand DBCommand = new OleDbCommand(SQLString, oledbConn);
IDataReader DBReader = DBCommand.ExecuteReader();
GridView1.DataSource = DBReader;
GridView1.DataBind();
DBReader.Close();
oledbConn.Close();
}
catch
{
ClientScript.RegisterStartupScript(this.GetType(), "", "alert('Excel文件格式不正确!')");
return;
}
}
}

展开
收起
爱吃鱼的程序员 2020-06-22 23:45:40 513 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    “已经被别的用户以独占方式打开,或没有查看数据的权限“,这个错误经常在,打开office浏览excel文件,同时执行程序读取时会报。先检查下是否没关闭excel文件。

    2020-06-22 23:45:58
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载