2016-03-08 63 views
-1

我想從我的數據庫中選擇一些數據並將其顯示到文本框中。首先是我從realestate.useraccounts選擇數據,然後選擇realestate.userprofiles。它在使用數量上工作,但不在用戶配置文件上工作。 `從不同表中選擇數據 - vb.net

Try 
     con.Open() 
     Dim q1 As String 
     q1 = "select userid,email from realestate.useraccounts where username='" & frmLogin.txtUsername.Text & "'" 
     cmd = New MySqlCommand(q1, con) 
     cmd.ExecuteNonQuery() 
     dr = cmd.ExecuteReader 
     If dr.HasRows Then 
      dr.Read() 
      lblUserid.Text = dr("userid") 
      txtEmail.Text = dr("email") 
     End If 
     con.Close() 
     con.Open() 
      Dim q2 As String 
      q2 = "select * from realestate.userprofiles where userid = '" & lblUserid.Text & "'" 
      cmd = New MySqlCommand(q2, con) 
      cmd.ExecuteNonQuery() 
      If dr.HasRows Then 
       dr.Read() 
       txtFirst.Text = dr("lastname") 
       txtLast.Text = dr("firstname") 
       txtAddress.Text = dr("address") 
      End If 
     con.Close() 
    Catch ex As Exception 
     MessageBox.Show(ex.Message) 
    Finally 
     con.Dispose() 
    End Try` 
+0

以何種方式是失敗的?描述問題。 – David

+0

爲什麼你使用2個查詢來做到這一點?顯然,你正在用'userid'加入這些表格。省去兩次打開連接的麻煩,並將SQL重寫爲一個語句。 – Jeroen

+0

另外;參數化您的查詢。 –

回答

0

你在第二個忘dr = cmd.ExecuteReader(),所以你dr.Read着你的第二個查詢閱讀。

您也可能在使用後關閉您的閱讀器使用它。

讓我們試試這個:

Try 
     con.Open() 
     Dim q1 As String 
     q1 = "select userid,email from realestate.useraccounts where username='" & frmLogin.txtUsername.Text & "'" 
     cmd = New MySqlCommand(q1, con) 
     cmd.ExecuteNonQuery() 
     dr = cmd.ExecuteReader 
     If dr.HasRows Then 
      dr.Read() 
      lblUserid.Text = dr("userid") 
      txtEmail.Text = dr("email") 
     End If 
     dr.Close() 
     con.Close() 
     con.Open() 
      Dim q2 As String 
      q2 = "select * from realestate.userprofiles where userid = '" & lblUserid.Text & "'" 
      cmd = New MySqlCommand(q2, con) 
      cmd.ExecuteNonQuery() 
      dr = cmd.ExecuteReader 
      If dr.HasRows Then 
       dr.Read() 
       txtFirst.Text = dr("lastname") 
       txtLast.Text = dr("firstname") 
       txtAddress.Text = dr("address") 
      End If 
      dr.Close() 
     con.Close() 
    Catch ex As Exception 
     MessageBox.Show(ex.Message) 
    Finally 
     con.Dispose() 
    End Try` 
+0

你對這個伴侶有很好的眼光。它的工作現在。非常感謝! –