2016-03-08 140 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

你对这个伴侣有很好的眼光。它的工作现在。非常感谢! –