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;
}
}
}

1个回答

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

yuanyu5929
长沙恒恩软件有限公司 那没有,我都关了的,而且重启了电脑和iis都没有用
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐