2010-03-19 90 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 - 雖然兩者將工作