为什么VB6中连接SQL 2000 数据库,显示“不可识别的数据库格式”?

时间:2020-12-18 17:16:33
求教大家,我刚接触VB不久……

我在SQL Server 2000里新建了一个数据库,很小型的数据库。
在VB6.0中用语句连接数据库:

Cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\SQLDatabase\MSSQL\Data\Pingyu_Data.MDF;Persist Security Info=False"


运行时,为什么会报错:

实时错误‘-2147467259(80004005)‘:
不可识别的数据库格式’C:\SQLDatabase\MSSQL\Data\Pingyu_Data.MDF‘。

比较急用,这个弄不会,后面的编程就进行不了了……先谢谢了。

4 个解决方案

#1


搜“VB6 ADO”

#2


vb6连接SQL数据库的技术要点:
1、首先在引用中添加数据库连接的引用,包括微软的ADO与ActiveX,可以在代码中创建数据库连接对象与数据表连接对象:
Dim db As New ADODB.Connection, RS As New ADODB.Recordset,其中db是数据库连接对象,RS是数据表连接对象,有了数据库连接对象,才能连接数据库,典型的数据库连接是使用SQL语句连接的,例如:
  db.ConnectionTimeout = 10
  db.CursorLocation = adUseServer
  db.ConnectionString = "driver={SQL Server};server=服务器名称(也就是你的计算机名称,也可以用英文句点,使用英文句点连接比较慢);uid=你的数据库登录名称(一般是sa);pwd=你的数据库登录密码(如果是空密码可以不填);database=你的数据库名称(不是数据库文件名称,即你创建数据库时使用的名称)"         '连接数据库的SQL语句代码
  db.Open        '打开数据库连接

#3


给你一个实例:
'服务器名称:AB05,密码空,数据库名称:职工管理系统
'数据表名称:登录,字段:ID、用户名、密码、权限

'连接数据库
  db.ConnectionTimeout = 10
  db.CursorLocation = adUseServer
  db.ConnectionString = "driver={SQL Server};server=AB05;uid=sa;pwd=;database=职工管理系统"    '连接数据库的SQL语句
  db.Open      '打开数据库
strSQL = "Select * From 登录 Where 用户名='" & Text1.Text & "'"    '数据表连接SQL语句
RS.Open strSQL, db, 2, 2    '打开数据表连接
If Not RS.EOF Then     '判断有没有这个用户名
    If RS!密码 = Text2.Text Then     '判断密码是否正确
        MsgBox "登录成功!"
    Else
         MsgBox "密码错误"
    End If
Else
     MsgBox "用户名错误"
End If
RS.Close   '关闭数据表对象
db.Close    '关闭数据库对象

#4


看到你连接参数写的:Provider=Microsoft.Jet.OLEDB.4.0

jet这个很明显是access的数据库的啊。当然不能识别了。   帮你百度了下:
StrCnn = "Provider=SQLOLEDB.1;Password=密码;Persist Security Info=True;User ID=用户名;Initial Catalog=数据库名;Data Source=服务器名" 

应该是上面这个格式,自己去调试吧。
http://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=monline_4_dg&wd=vb%E8%BF%9E%E6%8E%A5sql%20server%E6%95%B0%E6%8D%AE%E5%BA%93%E5%AD%97%E7%AC%A6%E4%B8%B2&oq=vb%E8%BF%9E%E6%8E%A5sql%20server%E6%95%B0%E6%8D%AE%E5%BA%93%E8%BF%9E%E6%8E%A5%E5%AD%97%E7%AC%A6%E4%B8%B2&rsv_pq=cf868ab6000985c3&rsv_t=851akdwTmaAx%2B6HBbwiRv9%2BsYMUI3b6GJbVSLXcjIwd6U1HvR6Xw%2Bry7HsPNfQ%2B9V5y9&rsv_enter=0&inputT=270&rsv_sug3=47&rsv_sug1=12&rsv_sug7=100&rsv_sug2=0&rsv_sug4=1969

#1


搜“VB6 ADO”

#2


vb6连接SQL数据库的技术要点:
1、首先在引用中添加数据库连接的引用,包括微软的ADO与ActiveX,可以在代码中创建数据库连接对象与数据表连接对象:
Dim db As New ADODB.Connection, RS As New ADODB.Recordset,其中db是数据库连接对象,RS是数据表连接对象,有了数据库连接对象,才能连接数据库,典型的数据库连接是使用SQL语句连接的,例如:
  db.ConnectionTimeout = 10
  db.CursorLocation = adUseServer
  db.ConnectionString = "driver={SQL Server};server=服务器名称(也就是你的计算机名称,也可以用英文句点,使用英文句点连接比较慢);uid=你的数据库登录名称(一般是sa);pwd=你的数据库登录密码(如果是空密码可以不填);database=你的数据库名称(不是数据库文件名称,即你创建数据库时使用的名称)"         '连接数据库的SQL语句代码
  db.Open        '打开数据库连接

#3


给你一个实例:
'服务器名称:AB05,密码空,数据库名称:职工管理系统
'数据表名称:登录,字段:ID、用户名、密码、权限

'连接数据库
  db.ConnectionTimeout = 10
  db.CursorLocation = adUseServer
  db.ConnectionString = "driver={SQL Server};server=AB05;uid=sa;pwd=;database=职工管理系统"    '连接数据库的SQL语句
  db.Open      '打开数据库
strSQL = "Select * From 登录 Where 用户名='" & Text1.Text & "'"    '数据表连接SQL语句
RS.Open strSQL, db, 2, 2    '打开数据表连接
If Not RS.EOF Then     '判断有没有这个用户名
    If RS!密码 = Text2.Text Then     '判断密码是否正确
        MsgBox "登录成功!"
    Else
         MsgBox "密码错误"
    End If
Else
     MsgBox "用户名错误"
End If
RS.Close   '关闭数据表对象
db.Close    '关闭数据库对象

#4


看到你连接参数写的:Provider=Microsoft.Jet.OLEDB.4.0

jet这个很明显是access的数据库的啊。当然不能识别了。   帮你百度了下:
StrCnn = "Provider=SQLOLEDB.1;Password=密码;Persist Security Info=True;User ID=用户名;Initial Catalog=数据库名;Data Source=服务器名" 

应该是上面这个格式,自己去调试吧。
http://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=monline_4_dg&wd=vb%E8%BF%9E%E6%8E%A5sql%20server%E6%95%B0%E6%8D%AE%E5%BA%93%E5%AD%97%E7%AC%A6%E4%B8%B2&oq=vb%E8%BF%9E%E6%8E%A5sql%20server%E6%95%B0%E6%8D%AE%E5%BA%93%E8%BF%9E%E6%8E%A5%E5%AD%97%E7%AC%A6%E4%B8%B2&rsv_pq=cf868ab6000985c3&rsv_t=851akdwTmaAx%2B6HBbwiRv9%2BsYMUI3b6GJbVSLXcjIwd6U1HvR6Xw%2Bry7HsPNfQ%2B9V5y9&rsv_enter=0&inputT=270&rsv_sug3=47&rsv_sug1=12&rsv_sug7=100&rsv_sug2=0&rsv_sug4=1969