2010-03-18 90 views
0

我想從兩個表在MySQL閱讀:從vb.net數據讀取多個表中讀取

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表單

+0

僅供參考,您的代碼是受到SQL注入攻擊。 http://stackoverflow.com/questions/tagged/sql-injection – Josh 2010-03-18 04:54:50

回答

0

試試這個在您的命令:

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

沒有看到你的表的架構我不能肯定地說,但我猜你的ID列被命名爲兩個表中的相同。爲了解決這個問題,你需要通過使用mother.IDNO或者father.IDNO(或者mother.IDNO和father.IDNO)來完全限定你正在尋找的那個。

+0

是的,他們都有IDNO作爲主鍵 – user225269 2010-03-18 02:50:14

+0

巴里的權利。這個問題與.NET無關,而是查詢。如果您在Management Studio或LINQpad中發出相同的查詢,您會看到相同的錯誤。 – Josh 2010-03-18 03:00:05

+0

對,我在mysql上查詢時遇到同樣的錯誤,那麼正確的查詢是什麼? – user225269 2010-03-18 03:08:25

0

如果(TextBox14.Text = NoAcc)然後TextBox7.Text = RDR( 「母親」)

如果(TextBox14.Text = NoAcc)然後TextBox8的.text = RDR( 「MOTHER_OCCUPATION」)

如果(TextBox14.Text = NoAcc)然後TextBox10.Text = RDR( 「父親」)

如果(TextBox14.Text = NoAcc)然後TextBox11.Text = RDR (「父親的職業」)

看起來相當冗餘/效率不高嗎?你

還可以嘗試使用INNER JOIN,而不是雙IDNO「其中」 s