Mysql 在vb.net数据读取器中读取多个表

Mysql 在vb.net数据读取器中读取多个表,mysql,vb.net,datareader,mysql-error-1052,Mysql,Vb.net,Datareader,Mysql Error 1052,我试图从mysql中的两个表中读取: Dim sqlcom As MySqlCommand = New MySqlCommand("Select * from mother, father where IDNO= '" & TextBox14.Text & "' ", sqlcon) -但我得到了这个错误: Column 'IDNO' in where clause is ambiguous 以下是全部代码: Dim NoAcc As String Dim

我试图从mysql中的两个表中读取:

Dim sqlcom As MySqlCommand = New MySqlCommand("Select * from  mother, father where IDNO= '" & TextBox14.Text & "' ", sqlcon)
-但我得到了这个错误:

Column 'IDNO' in where clause is ambiguous
以下是全部代码:

Dim NoAcc As String
        Dim NoAccmod2 As String
        Dim NoPas As String

        Dim sqlcon As New MySqlConnection("Server=localhost; Database=school;Uid=root;Pwd=nitoryolai123$%^;")
        Dim sqlcom As MySqlCommand = New MySqlCommand("Select * from  mother, father where IDNO= '" & TextBox14.Text & "' ", sqlcon)

        sqlcon.Open()


        Dim rdr As MySqlDataReader
        rdr = sqlcom.ExecuteReader


        If rdr.HasRows Then
            rdr.Read()
            NoAcc = rdr("IDNO")
            If (TextBox14.Text = NoAcc) Then TextBox7.Text = rdr("MOTHER")
            If (TextBox14.Text = NoAcc) Then TextBox8.Text = rdr("MOTHER_OCCUPATION")
            If (TextBox14.Text = NoAcc) Then TextBox10.Text = rdr("FATHER")
            If (TextBox14.Text = NoAcc) Then TextBox11.Text = rdr("FATHER_OCCUPATION")
        End If
-有什么建议可以帮助解决这个问题吗? 或者使用其他技术来实现使用数据读取器从两个表中读取数据的目标


这是一个winform,不是一个web表单,如果没有看到表的模式,我不能肯定,但是我猜您的ID列在两个表中的名称是相同的。要解决这个问题,您需要使用mother.IDNO或father.IDNO(或mother.IDNO和father.IDNO)完全限定您要查找的对象。

在您的命令中尝试以下操作:

Dim sqlcom As MySqlCommand = New MySqlCommand("Select * from  mother, father where mother.IDNO= '" & TextBox14.Text & "' AND father.IDNO = '" & TextBox14.Text  & "'", sqlcon)
如果(TextBox14.Text=NoAcc),则TextBox7.Text=rdr(“母亲”)

如果(TextBox14.Text=NoAcc),则TextBox8.Text=rdr(“母亲职业”)

如果(TextBox14.Text=NoAcc),则TextBox10.Text=rdr(“父”)

如果(TextBox14.Text=NoAcc),则TextBox11.Text=rdr(“父亲职业”)

看起来相当多余/低效,不是吗


此外,您还可以尝试使用内部联接,而不是双IDNO“Where”s

Barry的右侧。问题与.NET无关,而是查询。如果您在Management Studio或LINQpad中发出相同的查询,您会看到相同的错误。对,我在mysql上查询时会遇到相同的错误,正确的查询是什么?仅供参考,您的代码会受到SQL注入攻击。