access数据库联接老是出错!

IoriYagami80 2005-08-24 11:49:58
Private Sub FrmLogin_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim cd As New Odbc.OdbcConnection("Provider=Microsoft.Jet.oledb.4.0;data source=pwd.mdb;Jet OLEDB:Database Password=2592457;")
cd.Open()
End Sub
出现以下出错信息!
未处理的“System.Data.Odbc.OdbcException”类型的异常出现在 system.data.dll 中。

其他信息: 系统错误。
Dim cd As New System.Data.OleDb.OleDbConnection
cd.ConnectionString = "Provider=Microsoft.Jet.oledb.4.0;data source=pwd.mdb;Jet OLEDB:Database Password=2592457;"
cd.Open()
这样写也有一样的错误!
AssemblyInfo.vb里面添加了Imports System.data.oledb
...全文
117 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
泡沫游走 2005-08-24
  • 打赏
  • 举报
回复
"Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:database password=2592457;;Data Source= f:\pwd.mdb;"
IoriYagami80 2005-08-24
  • 打赏
  • 举报
回复
已经解决了,谢谢各位
IoriYagami80 2005-08-24
  • 打赏
  • 举报
回复
不可以使用相对路径吗
exing 2005-08-24
  • 打赏
  • 举报
回复
用odbc在系统中要注册的呀
用ole的话要有路径
EricBai 2005-08-24
  • 打赏
  • 举报
回复
还有这一局“source=pwd.mdb”最好这样写"source=" & Application.Path & "\pwd.mdb"
EricBai 2005-08-24
  • 打赏
  • 举报
回复
Dim cd As New Odbc.OdbcConnection ---????
ODBC 据我了解好像是6.0里的东西吧?
.net 里面连接Access的应该是 Oledb.OledbConnection
Alexbx 2005-08-24
  • 打赏
  • 举报
回复
'以下函数用 SQL SERVER .NET 来访问 SQL SERVER 数据库
'请注意:连接对象为 Data.SqlClient.SqlConnection 而非 Data.OleDb.OleDbConnection
Public Function vConnection_ADONet(ByVal adoCnn As Data.SqlClient.SqlConnection, ByVal DataPathName As String, _
Optional ByVal UserID As String = "", Optional ByVal Password As String = "", Optional ByVal ServerName As String = "", _
Optional ByVal nFlag As Integer = 1, Optional ByVal nWinntFlag As Boolean = False) As Boolean
'**************************************************************************************************
'功能:用 ADO.NET 连接数据库(服务器),如果连接成功则返回 True 并且返回 adoCnn 连接对象供程序使用
'参数:当 nFlag = 0 时是连接 Access 数据库,DataPathName 为数据库名称路径 < 未启用 >
' 当 nFlag = 1 时是连接 SQL Server 服务器,ServerName为服务器名,DataPathName为数据库名称
' 当 nFlag = 1 时 nWinntFlag 启用: = True 为系统集成安全访问,= False 为用户名和密码访问
' 访问数据库的用户名和密码分别为:UserID 和 PassWord
'时间:2005 年 08 月 23 日 Li.Alex ADD
'**************************************************************************************************
Dim CnnStr As String

Try
vConnection_ADONet = False
If Trim(DataPathName) = "" Then
'MsgBox("被连接的数据库名称为空,连接失败!", MsgBoxStyle.Information + MsgBoxStyle.OKOnly, "数据库名不能为空 ...")
Exit Function
End If

If nFlag = 0 Then
CnnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data source = " & DataPathName & ";" _
& "Persist Security Info = False;User ID = " & UserID & ";Jet OLEDB:Database Password = " & Password
ElseIf nFlag = 1 Then
If Trim(ServerName) = "" Then ServerName = "(local)"
If Trim(UserID) = "" Then UserID = "sa"
If nWinntFlag Then
CnnStr = "Initial Catalog = " & DataPathName & ";Data Source = " & ServerName & "; Integrated Security = SSPI;"
Else
CnnStr = "Initial Catalog = " & DataPathName & ";Data Source = " & ServerName & "; User ID = " & UserID & ";Password = " & Password
End If
End If
With adoCnn
If .State = ConnectionState.Open Then .Close()
.ConnectionString = CnnStr
.Open()
If .State = ConnectionState.Open Then
vConnection_ADONet = True
End If
End With

Catch ex As Exception
DisplayErrorMessage(ex)
End Try

End Function

'以下函数用 OLE DB.NET 来访问 SQL SERVER 和 ACCESS 数据库
'请注意:连接对象为 Data.OleDb.OleDbConnection 而非 Data.SqlClient.SqlConnection
Public Function vConnection_ADONet(ByVal adoCnn As Data.OleDb.OleDbConnection, ByVal DataPathName As String, _
Optional ByVal UserID As String = "", Optional ByVal Password As String = "", Optional ByVal ServerName As String = "", _
Optional ByVal nFlag As Integer = 1, Optional ByVal nWinntFlag As Boolean = False) As Boolean
'**************************************************************************************************
'功能:用 ADO.NET 连接数据库(服务器),如果连接成功则返回 True 并且返回 adoCnn 连接对象供程序使用
'参数:当 nFlag = 0 时是连接 Access 数据库,DataPathName 为数据库名称路径
' 当 nFlag = 1 时是连接 SQL Server 服务器,ServerName为服务器名,DataPathName为数据库名称
' 当 nFlag = 1 时 nWinntFlag 启用: = True 为系统集成安全访问,= False 为用户名和密码访问
' 访问数据库的用户名和密码分别为:UserID 和 PassWord
'时间:2005 年 08 月 22 日 Li.Alex ADD
'**************************************************************************************************
Dim CnnStr As String

Try
vConnection_ADONet = False
If Trim(DataPathName) = "" Then
'MsgBox("被连接的数据库名称为空,连接失败!", MsgBoxStyle.Information + MsgBoxStyle.OKOnly, "数据库名不能为空 ...")
Exit Function
End If

If nFlag = 0 Then
CnnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data source = " & DataPathName & ";" _
& "Persist Security Info = False;User ID = " & UserID & ";Jet OLEDB:Database Password = " & Password
ElseIf nFlag = 1 Then
If Trim(ServerName) = "" Then ServerName = "(local)"
If Trim(UserID) = "" Then UserID = "sa"
If nWinntFlag Then
CnnStr = "Provider = SQLOLEDB.1;Persist Security Info = False;Initial Catalog = " _
& DataPathName & ";Data Source = " & ServerName & "; Integrated Security = SSPI;"
Else
CnnStr = "Provider = SQLOLEDB.1;Persist Security Info = False; Initial Catalog = " _
& DataPathName & ";Data Source = " & ServerName & "; User ID = " & UserID & ";Password = " & Password
End If
End If
With adoCnn
If .State = ConnectionState.Open Then .Close()
.ConnectionString = CnnStr
.Open()
If .State = ConnectionState.Open Then
vConnection_ADONet = True
End If
End With

Catch ex As Exception
DisplayErrorMessage(ex)
End Try

End Function

Public Sub DisplayErrorMessage(ByVal ex As Exception)
MsgBox(ex.Message, MsgBoxStyle.Critical, "警告...")
End Sub

16,547

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧