vb6显示问题

时间:2010-03-19 11:50:39

标签: mysql vb6 adodb

我在mysql5.0中创建了一个数据库。我想显示它的数据。它有一个名为login的表。它有2列用户名和密码。在表单中我有2个文本字段用户名和密码我只想验证输入数据库值和显示消息框。已成功建立从vb到数据库的连接。但它没有验证输入。它给出错误为“需要对象”。请任何身体帮助我是vb。

的新手

我正在使用vb6和mysql5.0 谢谢

代码是:

public con As ADOB.connection
public rs2 As new ADOB.Recordest

public sub preconnection()
    set con = New connection
    set rs = New recordest
    set con = New ADOB.connection
    con.connectionString = "DRIVER = {Mysql ODBC 3.51 driver};"_
                 & "SERVER = localhost;"_
                 & "DATABASE = vbtest;"_
                 & "UID = root;"_
                 & "PWD = ;"
    con.cursorLocation = 
    con.open
end sub

sql = "select *from login"
set rs = con.execute (sql)
if rs.BOF = False Then
    While Not rs.EOF
        If Ucase(txtlogin.text = trim(rs(0)) Ad txtpassword.text = Trim(rs(1)) Then
            username = rs(0)
            loginname = True

            MsgBox("welcome")
        End if
        rs.movenext
     wend
End Sub

3 个答案:

答案 0 :(得分:2)

您已声明变量 rs2 ,但您并未在任何地方使用它;相反,你指的是一个不存在的变量 rs

答案 1 :(得分:1)

您的代码示例存在一些问题:

  • VB6中的延续约定如下:

        con.connectionString = "DRIVER = {Mysql ODBC 3.51 driver};" & _
           "SERVER = localhost;" & _
           "DATABASE = vbtest;" & _
           "UID = root;" & _
           "PWD = ;"
    
  • 拼写错误:sql = "select *from login" - > sql = "select * from login"

  • 拼写错误:If Ucase(txtlogin.text = trim(rs(0)) Ad txtpassword.text - > If Ucase(txtlogin.text = trim(rs(0)) And txtpassword.text

答案 2 :(得分:0)

作为提示,如果你设置“Option Explicit”,VB6应该为你指出一些拼写错误等。如果你没有这个设置,但是引用一个不存在的变量(比如rs),它会在你使用它时为你创建它。

sql =“select * from login”

应该是:

sql =“select * from login”

您应该声明sql。

如果Ucase(txtlogin.text = trim(rs(0))Ad txtpassword.text = Trim(rs(1))那么

应该是

如果是Ucase(txtlogin.text = trim(rs(0))和txtpassword.text = Trim(rs(1))那么

另外,我认为使用StrComp比使用UCASE更有效 - 尽管两者都有效。