从不同的表中选择数据-vb.net
我正在尝试从数据库中选择一些数据并将其显示在文本框中。首先,我从realestate.useraccounts中选择数据,然后选择realestate.userprofiles。它在用户帐户上工作,但在用户配置文件上不工作。 `从不同的表中选择数据-vb.net,vb.net,Vb.net,我正在尝试从数据库中选择一些数据并将其显示在文本框中。首先,我从realestate.useraccounts中选择数据,然后选择realestate.userprofiles。它在用户帐户上工作,但在用户配置文件上不工作。 ` 您在第二个查询中忘记了dr=cmd.ExecuteReader(),因此您的dr.Read无法在第二个查询中读取 您也可以在使用后关闭阅读器 让我们试试这个: Try con.Open() Dim q1 As String
您在第二个查询中忘记了
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`
它以什么方式失败?描述问题。为什么要使用两个查询来执行此操作?显然,您是在
userid
上加入这些表的。省去了两次打开连接并将SQL重写为一条语句的麻烦;把你的问题参数化。你对那个伙伴很有眼光。现在开始工作了。非常感谢!
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`