感谢您使用微软产品。您可以检查一下当前用户对该MDB文件有没有读写权限。特别地,当您是在ASP.NET中运行时,出于安全性的考虑,ASP.NET缺省运行在ASPNET帐号下,如果ASPNET帐号对您的MDB文件没有读/写的权限,就有可能发生您所遇到的错误。 关于该问题的具体描述及可选的解决方法,您可以参考以下文档:PRB: Cannot Connect to Access Database from ASP.NET (Q316675) http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q316675 - 微软全球技术中心 VB技术支持本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。为了为您创建更好的讨论环境,请参加我们的用户满意度调查(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。
如果你希望打开一个有口令保护的Access数据库,你可以用以下三种语法的任一种: (这是vb的例子,不过我想C#中的用法也差不多,我碰到过和你一样的错误,是CSDN中的高手告诉我这些方法的。) Dim MyConn As New ADODB.Connection MyConn.Provider = "Microsoft.Jet.OLEDB.3.51" MyConn.Properties("Data Source") = "C:\...\JetPassword.MDB" MyConn.Properties("Jet OLEDB:Database Password") = "MyPwd" MyConn.Open -或- Dim MyConn As New ADODB.Connection Dim strConn As String strConn = "Data Source=C:\...\JetPassword.MDB;" & _ "Jet OLEDB:Database Password=MyPwd" MyConn.Provider = "Microsoft.Jet.OLEDB.3.51" MyConn.Open ConnectionString:=strConn -或- Dim MyConn As New ADODB.Connection Dim strConn As String strConn = "Provider=Microsoft.Jet.OLEDB.3.51;" & _ "Data Source=C:\...\JetPassword.MDB;" & _ "Jet OLEDB:Database Password=MyPwd" MyConn.Open ConnectionString:=strConn 如果你打开一个数据库使用了Jet安全保护,你需要使用以下方式: Dim MyConn As New ADODB.Connection MyConn.Provider = "Microsoft.Jet.OLEDB.3.51" MyConn.Properties("Data Source") = "C:\...\JetSecurity.MDB" MyConn.Properties("Jet OLEDB:System database") = "C:\...\System.MDW" MyConn.Open UserID:="Admin", Password:="MyPwd" -或- Dim MyConn As New ADODB.Connection Dim strConn As String strConn = "Data Source=C:\...\JetSecurity.MDB;" & _ "Jet OLEDB:System database=C:\...\System.MDW" MyConn.Provider = "Microsoft.Jet.OLEDB.3.51" MyConn.Open ConnectionString:=strConn, _ UserID:="Admin", Password:="MyPwd" -或- Dim MyConn As New ADODB.Connection Dim strConn As String strConn = "Provider=Microsoft.Jet.OLEDB.3.51;" "Data Source=C:\...\JetSecurity.MDB;" & _ "Jet OLEDB:System database=C:\...\System.MDW" MyConn.Open ConnectionString:=strConn, _ UserID:="Admin", Password:="MyPwd" 注意:Jet 3.51 OLEDB provider 被设计用来打开Access97数据库,如果你要打开Access 2000 请使用Jet 4.0 OLEDB provider,当然Jet 3.51 OLEDB provider也能打开Access 97。 如果你希望使用Jet 4.0只要将Microsoft.Jet.OLEDB.3.51换成Microsoft.Jet.OLEDB.4.0
关于该问题的具体描述及可选的解决方法,您可以参考以下文档:PRB: Cannot Connect to Access Database from ASP.NET (Q316675)
http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q316675 - 微软全球技术中心 VB技术支持本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。为了为您创建更好的讨论环境,请参加我们的用户满意度调查(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。
Dim MyConn As New ADODB.Connection MyConn.Provider = "Microsoft.Jet.OLEDB.3.51"
MyConn.Properties("Data Source") = "C:\...\JetPassword.MDB"
MyConn.Properties("Jet OLEDB:Database Password") = "MyPwd"
MyConn.Open
-或- Dim MyConn As New ADODB.Connection
Dim strConn As String strConn = "Data Source=C:\...\JetPassword.MDB;" & _
"Jet OLEDB:Database Password=MyPwd"
MyConn.Provider = "Microsoft.Jet.OLEDB.3.51"
MyConn.Open ConnectionString:=strConn
-或- Dim MyConn As New ADODB.Connection
Dim strConn As String strConn = "Provider=Microsoft.Jet.OLEDB.3.51;" & _
"Data Source=C:\...\JetPassword.MDB;" & _
"Jet OLEDB:Database Password=MyPwd"
MyConn.Open ConnectionString:=strConn 如果你打开一个数据库使用了Jet安全保护,你需要使用以下方式: Dim MyConn As New ADODB.Connection MyConn.Provider = "Microsoft.Jet.OLEDB.3.51"
MyConn.Properties("Data Source") = "C:\...\JetSecurity.MDB"
MyConn.Properties("Jet OLEDB:System database") = "C:\...\System.MDW"
MyConn.Open UserID:="Admin", Password:="MyPwd"
-或- Dim MyConn As New ADODB.Connection
Dim strConn As String strConn = "Data Source=C:\...\JetSecurity.MDB;" & _
"Jet OLEDB:System database=C:\...\System.MDW"
MyConn.Provider = "Microsoft.Jet.OLEDB.3.51"
MyConn.Open ConnectionString:=strConn, _
UserID:="Admin", Password:="MyPwd"
-或- Dim MyConn As New ADODB.Connection
Dim strConn As String strConn = "Provider=Microsoft.Jet.OLEDB.3.51;"
"Data Source=C:\...\JetSecurity.MDB;" & _
"Jet OLEDB:System database=C:\...\System.MDW"
MyConn.Open ConnectionString:=strConn, _
UserID:="Admin", Password:="MyPwd" 注意:Jet 3.51 OLEDB provider 被设计用来打开Access97数据库,如果你要打开Access 2000 请使用Jet 4.0 OLEDB provider,当然Jet 3.51 OLEDB provider也能打开Access 97。 如果你希望使用Jet 4.0只要将Microsoft.Jet.OLEDB.3.51换成Microsoft.Jet.OLEDB.4.0
zgdhj95(我来自杭州)真热心,谢谢
实际上是打开普通User的权限?
这是Bug还是其它的原因?