我的程序如下:
int result;
DB_Access access = new DB_Access();
SqlConnection sqlConn = (SqlConnection)Application["dataconn"];
int userid = (int)Session["user_id"];
string strName;
string strMobile;
string strCompany;
string strJob;
string strAddress;
string strPhone;
if(txtFileUp.PostedFile.FileName=="")
{
Response.Write("<script language='javascript'>alert('请先选择要导入的文件!');</script>");
return;
}
try
{
char[] spliter = {'\\'};
strFullPath = txtFileUp.PostedFile.FileName;
OleDbConnection myOleDbConnection = new OleDbConnection (@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
strFullPath + @";Extended Properties=Excel 8.0;");
myOleDbConnection.Open();//出错了
OleDbCommand oCmd = new OleDbCommand("SELECT * FROM [Sheet1$]",myOleDbConnection);
OleDbDataAdapter oAdapter = new OleDbDataAdapter();
oAdapter.SelectCommand = oCmd;
DataTable dt = new DataTable();
oAdapter.Fill(dt);
for(int i=0;i<dt.Rows.Count;i++)
{
DataRow newRow = dt.Rows[i];
strName = (string)newRow["A"];
strMobile = (string)newRow["B"];
strCompany = (string)newRow["C"];
strJob = (string)newRow["D"];
strAddress = (string)newRow["E"];
strPhone = (string)newRow["F"];
try
{
access.addLinkManParam(sqlConn,strName.Trim(),strMobile.Trim(),1,strCompany.Trim(),strJob.Trim(),strAddress.Trim(),strPhone.Trim(),userid,out result);
if(result != 0)
{
Response.Write("<script language='javascript'>alert('数据库操作出错!');</script>");
return;
}
}
catch
{
Response.Write("<script language='javascript'>alert('数据库操作出错!');</script>");
return;
}
}
}
catch(Exception err)
{
string st = err.Message;
Response.Write("<script language='javascript'>alert('Excel读取出错!');</script>");
return;
}
结果程序在myOleDbConnection.Open();就出错了,错误信息为:Microsoft Jet 数据库引擎打不开文件'......\Book1.xls'。它已经被别的用户以独占方式打开,或没有查看数据的权限。
可是我并没有打开该文件啊!
请问如何解决,谢谢!
int result;
DB_Access access = new DB_Access();
SqlConnection sqlConn = (SqlConnection)Application["dataconn"];
int userid = (int)Session["user_id"];
string strName;
string strMobile;
string strCompany;
string strJob;
string strAddress;
string strPhone;
if(txtFileUp.PostedFile.FileName=="")
{
Response.Write("<script language='javascript'>alert('请先选择要导入的文件!');</script>");
return;
}
try
{
char[] spliter = {'\\'};
strFullPath = txtFileUp.PostedFile.FileName;
OleDbConnection myOleDbConnection = new OleDbConnection (@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
strFullPath + @";Extended Properties=Excel 8.0;");
myOleDbConnection.Open();//出错了
OleDbCommand oCmd = new OleDbCommand("SELECT * FROM [Sheet1$]",myOleDbConnection);
OleDbDataAdapter oAdapter = new OleDbDataAdapter();
oAdapter.SelectCommand = oCmd;
DataTable dt = new DataTable();
oAdapter.Fill(dt);
for(int i=0;i<dt.Rows.Count;i++)
{
DataRow newRow = dt.Rows[i];
strName = (string)newRow["A"];
strMobile = (string)newRow["B"];
strCompany = (string)newRow["C"];
strJob = (string)newRow["D"];
strAddress = (string)newRow["E"];
strPhone = (string)newRow["F"];
try
{
access.addLinkManParam(sqlConn,strName.Trim(),strMobile.Trim(),1,strCompany.Trim(),strJob.Trim(),strAddress.Trim(),strPhone.Trim(),userid,out result);
if(result != 0)
{
Response.Write("<script language='javascript'>alert('数据库操作出错!');</script>");
return;
}
}
catch
{
Response.Write("<script language='javascript'>alert('数据库操作出错!');</script>");
return;
}
}
}
catch(Exception err)
{
string st = err.Message;
Response.Write("<script language='javascript'>alert('Excel读取出错!');</script>");
return;
}
结果程序在myOleDbConnection.Open();就出错了,错误信息为:Microsoft Jet 数据库引擎打不开文件'......\Book1.xls'。它已经被别的用户以独占方式打开,或没有查看数据的权限。
可是我并没有打开该文件啊!
请问如何解决,谢谢!
解决方案 »
- textbox控件的输入问题
- 该字符串未被识别为有效的 DateTime。有一个从索引 0 处开始的未知字。帮忙看一下,谢谢!
- datatable分页问题?好心人帮忙哦
- <a id="FindJob" runat="server" onclick="FindJob_click" href="Default2.aspx?job=<%=posistring %>" target="_blank"><%=posist
- IDE是先学vs2003再学习vs2005,还是直接学习VS2005??请指点
- 如何在网页中实现交互性图形?急!
- 怎样将字符转换成ASCII码,ASCII码转换成字符?
- 为什么设置了Response.Cache.SetCacheability(HttpCacheability.NoCache)后,ie6不起作用啊?
- 怎么提取一个变量的前100个字
- 连接sql server时出现的问题……
- 请教怎样给xsl文件传参数
- 请问在Web Service中,如何重载实例化函数New ?
如果没有右键->安全->把权限给asp.net用户,或everyone完全控制
或者是不是被execl打开的时候进行的操作>>??
strName = (string)newRow["A"];
strMobile = (string)newRow["B"];
strCompany = (string)newRow["C"];
strJob = (string)newRow["D"];
strAddress = (string)newRow["E"];
strPhone = (string)newRow["F"];
也就是newRow后面的column应该如何决定?