读书人

System.Data.OleDb.OleDbException: M

发布时间: 2012-02-17 17:50:41 作者: rapoo

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

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

读书人网 >VB Dotnet

热点推荐