一开始,建了一个测试网站,能导入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;
 }
 }
 }
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
“已经被别的用户以独占方式打开,或没有查看数据的权限“,这个错误经常在,打开office浏览excel文件,同时执行程序读取时会报。先检查下是否没关闭excel文件。