0

私はmysqlの2つのテーブルから読み取ろうとしています:

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

-この問題の解決に役立つ提案はありますか?または、データリーダーを使用して2つのテーブルからデータを読み取るという目標を達成するための他の手法もありますか?

これは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( "FATHER")

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

かなり冗長/非効率に見えますね?

また、デュアルIDNO「Where」の代わりにINNERJOINを使用してみてください。

于 2010-03-18T12:19:18.063 に答える