C#ASP程序导入Excel文件出错了。
一开始,建了一个测试网站,能导入Excel表格,没有报错,然后并入到其他程序时出错了,因为用到的Microsoft.Jet.OLEDB.4.0好像是32位组件,就在iis...
一开始,建了一个测试网站,能导入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;
}
}
} 展开
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;
}
}
} 展开
展开全部
ClientScript是什么玩意,为什么要用这个。
更多追问追答
追问
我也不知道,别人的东西,这个关系不大吧?
追答
关系很大。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
换个32的Excel文件试下看?
更多追问追答
追问
这怎么换?
追答
你的iis只支持32位的应用和程序
如果你的Excel文件是64位的,应该会出现意想不到的故障
所以要用32位的Excel文件测试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询