2010-03-19 85 views
0

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

我使用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 
+0

哪条线是给你的错误? – 2010-03-19 12:18:20

回答

2

你声明的变量RS2但你没有在任何地方使用它;相反,你在整个指的是不存在的变量RS

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"

  • TY婆:If Ucase(txtlogin.text = trim(rs(0)) Ad txtpassword.text - >If Ucase(txtlogin.text = trim(rs(0)) And txtpassword.text

0

有一个小窍门,如果你设置“选项显式”,VB6应该指出一些错别字,等你。如果你没有这个集合,但是引用一个不存在的变量(比如rs),它会在你使用它时为你创建它。

SQL = “选择登录*”

也许应该是:

SQL = “SELECT * FROM登录”

你或许应该申报SQL。

如果UCASE(txtlogin.text =修剪(RS(0))的Ad txtpassword.text =修剪(RS(1))。然后

应该是

如果UCASE(txtlogin.text =修剪( RS(0))和txtpassword.text = TRIM(RS(1))然后

而且,我认为这是更有效地使用STRCOMP比UCASE - 虽然两者将工作