0

我正在尝试从 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 表单

4

3 回答 3

1

如果没有看到您的表的架构,我不能肯定地说,但我猜您的 ID 列在两个表中的名称相同。为了解决这个问题,您需要使用mother.IDNO 或father.IDNO(或mother.IDNO 和father.IDNO)完全限定您要查找的那个。

于 2010-03-18T02:35:57.597 回答
0

在你的命令上试试这个:

Dim sqlcom As MySqlCommand = New MySqlCommand("Select * from  mother, father where mother.IDNO= '" & TextBox14.Text & "' AND father.IDNO = '" & TextBox14.Text  & "'", sqlcon)
于 2010-03-18T03:57:44.267 回答
0

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("父亲")

If (TextBox14.Text = NoAcc) Then TextBox11.Text = rdr("FATHER_OCCUPATION")

看起来相当多余/效率低下不是吗?

您也可以尝试使用 INNER JOIN 而不是双 IDNO "Where"s

于 2010-03-18T12:19:18.063 回答