关于Excel导入Sql Server数据库,在服务器上执行所出现的错误?怪怪怪!!!

zhaoxm 2006-10-24 02:31:40
我使用xp+vs.net2003+iis实现了一个Excel导入sql server功能,本地执行导入(从不同的磁盘位置)正常。但是将程序移植到服务器上(Win2003),使用客户端机器访问服务器,执行导入功能,出现很怪错误:如下所示
1、执行时候IE显示错误:
Microsoft Jet 数据库引擎打不开文件''。 它已经被别的用户以独占方式打开,或没有查看数据的权限。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.OleDb.OleDbException: Microsoft Jet 数据库引擎打不开文件''。 它已经被别的用户以独占方式打开,或没有查看数据的权限。
源错误:
执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。
堆栈跟踪:
[OleDbException (0x80004005): Microsoft Jet 数据库引擎打不开文件''。 它已经被别的用户以独占方式打开,或没有查看数据的权限。]
System.Data.OleDb.OleDbConnection.ProcessResults(Int32 hr) +20
System.Data.OleDb.OleDbConnection.InitializeProvider() +57
System.Data.OleDb.OleDbConnection.Open() +203
System.Data.Common.DbDataAdapter.QuietOpen(IDbConnection connection, ConnectionState& originalState) +44
System.Data.Common.DbDataAdapter.FillFromCommand(Object data, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +304
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +77
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet) +38
E_InfoSys.CaiwbbAdd.Button1_Click(Object sender, EventArgs e) +426
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain() +1292

2、将文件放置桌面,执行导入错误:
'C:\Documents and Settings\zxm\桌面\华北空运.xls'不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.OleDb.OleDbException: 'C:\Documents and Settings\zxm\桌面\AAA.xls'不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。

源错误:
执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。
堆栈跟踪:
[OleDbException (0x80004005): 'C:\Documents and Settings\zxm\桌面\AAA.xls'不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。]
System.Data.OleDb.OleDbConnection.ProcessResults(Int32 hr) +20
System.Data.OleDb.OleDbConnection.InitializeProvider() +57
System.Data.OleDb.OleDbConnection.Open() +203
System.Data.Common.DbDataAdapter.QuietOpen(IDbConnection connection, ConnectionState& originalState) +44
System.Data.Common.DbDataAdapter.FillFromCommand(Object data, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +304
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +77
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet) +38
E_InfoSys.CaiwbbAdd.Button1_Click(Object sender, EventArgs e) +426
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain() +1292

说明:1.我的Excel程序没有打开此文件;
2.我网上找了一下此问题的原因,似乎是服务器权限的问题,但是没有解决。

哪位大侠具体指点一下,怎么设置,修改,小弟万分感谢!!!!





...全文
535 9 打赏 收藏 举报
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
tianzhenjing 2006-11-20
  • 打赏
  • 举报
回复
权限问题,加入任何人的读写权限
ruide205 2006-11-20
  • 打赏
  • 举报
回复
没有对该文件的操作权限!找到该文件,属性-安全-添加Everyone所有权限,肯定就可以了
zhaoxm 2006-10-26
  • 打赏
  • 举报
回复
还有好的解决方案吗?真是困惑呀
zhaoxm 2006-10-25
  • 打赏
  • 举报
回复
还有好的解决方案吗?真是困惑呀
zhaoxm 2006-10-24
  • 打赏
  • 举报
回复
我程序代码已经实现,我怀疑是服务器端设置的问题。
daishengs 2006-10-24
  • 打赏
  • 举报
回复
最好不要用中文
daishengs 2006-10-24
  • 打赏
  • 举报
回复
private void Add(string mPath,string mFileName,int OutLineID,int CoefficientID)
{
DataTable myTable=new DataTable("ExcelTable");
String strConnection="Provider=Microsoft.Jet.OleDb.4.0;data source="+mPath+mFileName+";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\"";
OleDbConnection objConnection=new OleDbConnection(strConnection);

String strSQL="SELECT * FROM [Sheet1$]";
OleDbCommand objCommand=new OleDbCommand(strSQL,objConnection);
OleDbDataAdapter objDataAdapter=new OleDbDataAdapter(objCommand);
objConnection.Open();
objDataAdapter.Fill(myTable);
objConnection.Close();

if(myTable.Rows.Count<1)
{
MessageBox.Show(Page,"表格内容为空。");
return;
}
StringBuilder strInSertSQL=new StringBuilder();
BusFunction myBusFunction=new BusFunction();
foreach(DataRow myRow in myTable.Rows)
{
strInSertSQL.Append("insert into Judge(");
strInSertSQL.Append("CoefficientID,OutlineID,Title,isRight");
strInSertSQL.Append(")");
strInSertSQL.Append(" values (");
strInSertSQL.Append(""+CoefficientID+",");
strInSertSQL.Append(""+OutLineID+",");
strInSertSQL.Append("'"+myBusFunction.EnCos(myRow["题干"].ToString())+"',");
strInSertSQL.Append("'"+myBusFunction.EnCos(myRow["答案"].ToString()).Trim().Substring(0,1)+"'");
strInSertSQL.Append(");");
}
DbHelperSQL.ExecuteSql(strInSertSQL.ToString());
MessageBox.Show(Page,"导入成功。");
return;
}
daishengs 2006-10-24
  • 打赏
  • 举报
回复
private void btnAdd_Click(object sender, EventArgs e)
{
lblID.Text=list.SelectedValue;
if(lblID.Text.Trim()=="")
{
MessageBox.Show(Page,"请先选择大纲。");
return;
}

if(listCoefficient.SelectedValue.Trim()=="")
{
MessageBox.Show(Page,"请先选择难度系数。");
return;
}

if(fileUp.PostedFile.FileName=="")
{
MessageBox.Show(Page,"请先选择文件。");
return;
}
string filePath="",fileExtName="",mFileName="",mPath="";
StringBuilder strMsg = new StringBuilder("上传的文件信息:<hr color=red>");
if("" != fileUp.PostedFile.FileName)
{
filePath =fileUp.PostedFile.FileName;//取得文件路径
fileExtName= filePath.Substring(filePath.LastIndexOf(".")+1);
if(fileExtName.ToUpper()!="XLS")
{
MessageBox.Show(Page,"文件必须为EXCEL表格。");
return;
}

try
{
//取得与 Web 服务器上的指定虚拟路径相对应的物理文件路径。
mPath=Server.MapPath("upfile/");
mFileName=filePath.Substring(filePath.LastIndexOf("\\")+1);;//取得文件名
strMsg.Append("上传的文件类型:" + fileUp.PostedFile.ContentType.ToString() + "<br>");
strMsg.Append("客户端文件地址:" + fileUp.PostedFile.FileName + "<br>");
strMsg.Append("上传文件的文件名:" + mFileName + "<br>");
strMsg.Append("上传文件的扩展名:" + fileExtName);
//保存上传文件到指定的目录
fileUp.PostedFile.SaveAs(mPath + mFileName);
}
catch(Exception error)
{
Response.Write(error.ToString());
}
Add(mPath,mFileName,int.Parse(lblID.Text),int.Parse(listCoefficient.SelectedValue.Trim()));
}
}
zhaoxm 2006-10-24
  • 打赏
  • 举报
回复
如何解决呢?
相关推荐
发帖
.NET社区

6.1w+

社区成员

.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
帖子事件
创建了帖子
2006-10-24 02:31
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。