首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

System.Data.OleDb.OleDbException: Microsoft Jet 数据库引擎打不开Excel文件解决思路

2012-02-17 
System.Data.OleDb.OleDbException: Microsoft Jet 数据库引擎打不开Excel文件做了一个导入Excel功能的导

System.Data.OleDb.OleDbException: Microsoft Jet 数据库引擎打不开Excel文件
做了一个导入Excel功能的导入按钮,将上传的EXCEL文件进行读取,当程序运行到打开这个连接即:myConn.Open() 时就出现以下的错误:
异常详细信息: System.Data.OleDb.OleDbException: Microsoft Jet 数据库引擎打不开文 它已经被别的用户以独占方式打开,或没有查看数据的权限

请各位高手帮帮忙,帮我解决一下这个问题,谢谢大家了!
代码:
Sub LoadData(ByVal FileSource As String, ByVal Sheet As String)
  Dim strCon As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FileSource + "; Extended Properties=Excel 8.0;"
  'Dim strCon As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FileSource & ";Extended Properties=Excel 8.0"
  Dim myConn As OleDbConnection
  myConn = New OleDbConnection(strCon)
  myConn.Open() '打开数据链接,得到一个数据集  
  Dim myDataSet As New DataSet '得到自己的DataSet对象  
  Dim StrSql As String
  StrSql = "select * from [" & Sheet & "$]"
  Dim myCommand As New OleDbDataAdapter(StrSql, myConn) '创建一个 DataSet对象  
  myCommand.Fill(myDataSet, "[" & Sheet & "$]")
  myCommand.Dispose()
  Dim DT As DataTable
  DT = myDataSet.Tables("[" & Sheet & "$]")
  myConn.Close()
  myCommand.Dispose()

  Dim result As Integer
  Dim mySql As String
  For i As Integer = 0 To DT.Rows.Count - 1
  Try
  Dim Name As String = DT.Rows(i)(0).ToString()
  Dim Username As String = DT.Rows(i)(1).ToString()
  mySql = "Begin TRANSACTION " & "\n"
  mySql = mySql & "insert into Userinfo(Name,Username) "
  mySql = mySql & " values('" & Name & "','" & Username & "')" & "\n"
  result = myDB.UpdateObject(mySql)
  If result > 0 Then
  mySql = mySql & "COMMIT TRANSACTION"
  Response.Write("<script language='javascript'>alert('导入成功!');history.back();</script>")
  End If
  Catch ex As Exception
  mySql = mySql & "ROLLBACK TRANSACTION"
  Response.Write("<script language='javascript'>alert('导入失败!');history.back();</script>")
  Finally
  Response.Write("<script language='javascript'>window.close();</script>")
  Response.End()
  End Try
  Next
  End Sub

[解决办法]
沙发
[解决办法]
运行程序的时间,数据表不要打开

热点排行