你好,小弟初学VB。现在开始学对数据库的连接。
我从网络上下载了一个完整的图书管理系统。
安装了SQL2000后在c:\lib\创建数据库   下生成了
kim_data.mdf和kim_log.ldf两个文件
然后运行图书管理系统时出现一个登陆窗口
点击登陆时便会出现连接数据库失败!请重新连接
点击调试后出现发现Private Sub CmdOK_Click()
    Dim rst As ADODB.Recordset
    Dim password As String
    '判断密码是否正确
    Sys_UserID = Trim(txtUserId.Text)
    SQL = " select userID,password from 用户信息表 where userID='" & Sys_UserID & "'"
    Set rst = SelectSQL(SQL, msg)
    If rst.RecordCount > 0 Then    '如果存在该用户
        password = Trim(rst.Fields(1))
        rst.Close
    Else
        If InsertUserInfo Then     '如果输入的是读者号,且用户是第一次登陆
            MsgBox ("欢迎读者使用,请你修改密码!")
        Else
            MsgBox ("用户ID或密码错误!")
        End If
        Exit Sub
    End If
    
    If password = Trim(txtPassword.Text) Then
      Sys_LoginSucceeded = True
      LibInfoSerSys.Show
      Unload Me
    Else
      MsgBox ("密码错误!")
      Sys_LoginSucceeded = False
    End If
End Sub
而If rst.RecordCount > 0 Then    '如果存在该用户
便是出现问题的语句
但我想这应该是因为无法连接上数据库的原因吧请高手给个详细解答
不甚感激

解决方案 »

  1.   

    与数据库的连接:
    dim conn as new adodb.connection
    With conn
        If .State = adStateOpen Then .Close
        .ConnectionString = "driver=SQL Server;server=计算机名或IP地址;uid=sa;pwd=;database=数据库名称"
        .CommandTimeout = 300
        .Open
    end with
      

  2.   

    dim conn as new adodb.connection
    With conn
        If .State = adStateOpen Then .Close
        .ConnectionString = "driver=SQL Server;server=计算机名或IP地址;uid=sa;pwd=;database=数据库名称"
        .CommandTimeout = 300
        .Open
    end with如果是本机的话,建议ip地址不要写,你试试看。
    .ConnectionString = "driver=SQL Server;server=;uid=sa;pwd=;database=数据库名称"
      

  3.   

    谢谢大家的指导~~我这里打出来的是该系统内的关于数据库的连接~
    请问有什么错误吗?是否我还要自己添加连接代码(如楼上两位大侠所示代码)Public Function OpenConn(ByRef Conn As ADODB.Connection) As Boolean
    '打开数据库连接,连接成功返回true,出错时返回false
        Set Conn = New ADODB.Connection
        '出错处理
        On Error GoTo ErrorHandle
        Conn.Open GetConnStr
        OpenConn = True
        Exit Function
    ErrorHandle:
        MsgBox "连接数据库失败!请重新连接!"
        OpenConn = False
        Exit Function
    End Function
    Public Sub ExecuteSQL(ByVal SQL As String, ByRef msg As String)
    '执行SQL语句
        Dim Conn As ADODB.Connection
        Dim sTokens() As String
        '出错处理
        On Error GoTo ErrorHandle
        '判断SQL语句
        sTokens = Split(SQL)
        If InStr("INSERT,DELETE,UPDATE", UCase((sTokens(0)))) Then
            '打开数据库连接
            If OpenConn(Conn) Then
                Conn.Execute SQL
                msg = sTokens(0) & "操作执行成功!"
            End If
        Else
            msg = "SQL语句有误:" & SQL
        End If
    Finally_Exit:
        Set rst = Nothing
        Set Conn = Nothing
        Exit Sub
    ErrorHandle:
        msg = "执行错误: " & Err.Description
        Resume Finally_Exit
    End Sub