Чтение из нескольких таблиц в vb.net. - PullRequest
0 голосов
/ 18 марта 2010

Я пытаюсь прочитать из двух таблиц в 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, а не веб-форма

Ответы [ 3 ]

1 голос
/ 18 марта 2010

Не видя схемы ваших таблиц, я не могу сказать наверняка, но я предполагаю, что ваши столбцы идентификаторов названы одинаково в обеих таблицах. Чтобы обойти это, вам нужно будет полностью квалифицировать тот, который вы ищете, используя mother.IDNO или Father.IDNO (или mother.IDNO AND Father.IDNO).

0 голосов
/ 18 марта 2010

If (TextBox14.Text = NoAcc) Тогда TextBox7.Text = rdr ("MOTHER")

If (TextBox14.Text = NoAcc), то TextBox8.Text = rdr ("MOTHER_OCCUPATION")

If (TextBox14.Text = NoAcc), тогда TextBox10.Text = rdr ("FATHER")

Если (TextBox14.Text = NoAcc), то TextBox11.Text = rdr ("FATHER_OCCUPATION")

Выглядит довольно избыточно / неэффективно, не так ли?

Также вы можете попробовать использовать ВНУТРЕННЕЕ СОЕДИНЕНИЕ вместо двойного IDNO "Где" s

0 голосов
/ 18 марта 2010

Попробуйте это по вашей команде:

Dim sqlcom As MySqlCommand = New MySqlCommand("Select * from  mother, father where mother.IDNO= '" & TextBox14.Text & "' AND father.IDNO = '" & TextBox14.Text  & "'", sqlcon)
...