2014-06-22 1 views
0

그래, 내가 여기서 권장 한 코드를 조정했지만 TxtNaamprev.Text 및 TxtAdresprev.Text 만 채울 것입니다 ... 누락 된 링크를 채울 수 있습니까? 나는 정말로 내가 무엇을하고 있는지 전혀 모른다. 이것은 우리 책이 설명하는 것 이상의 학교 과제입니다. 나는 아무런 참고 문헌이 아니라 인터넷을 가지고있다. Plutonix는 지적OleDb가 데이터베이스를 읽고 콤보 박스를 사용하여 텍스트 상자를 채우는 것

Private Sub CbbNaamfirma_SelectedIndexChanged(sender As System.Object, e As            System.EventArgs) Handles CbbNaamfirma.SelectedIndexChanged 
    Dim cnString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & _ 
       Application.StartupPath & "\Database.accdb" 
    Dim query = "SELECT Adres FROM TblKlanten WHERE [Naam firma] = ?" 
    Using Connection = New OleDb.OleDbConnection(cnString) 
     Using cmd = New OleDbCommand(query, Connection) 
      Try 
       Connection.Open() 
       cmd.Parameters.AddWithValue("@p1", CbbNaamfirma.Text) 
       Using Reader = cmd.ExecuteReader 
        While Reader.Read 
         TxtNaamprev.Text = CbbNaamfirma.Text 
         Dim posAdres = Reader.GetOrdinal("Adres") 
         TxtAdresprev.Text = Reader.GetString(posAdres) 

         Dim posTelefoonnummer = Reader.GetOrdinal("Telefoonnummer") 
         TxtTelefoonprev.Text = Reader.GetInt16(posTelefoonnummer) 

         Dim posFaxnummer = Reader.GetOrdinal("Faxnummer") 
         TxtFaxprev.Text = Reader.GetString(posFaxnummer) 

         Dim posGSM = Reader.GetOrdinal("GSM") 
         TxtGsmprev.Text = Reader.GetString(posGSM) 

         Dim posBTW = Reader.GetOrdinal("BTW-nummer") 
         TxtBTWprev.Text = Reader.GetString(posBTW) 

         Dim posWebsite = Reader.GetOrdinal("Website") 
         TxtWebsiteprev.Text = Reader.GetString(posWebsite) 

         Dim posNaambank = Reader.GetOrdinal("Naam bank") 
         TxtBankprev.Text = Reader.GetString(posNaambank) 

         Dim posIBAN = Reader.GetOrdinal("IBAN-nummer") 
         TxtIBANprev.Text = Reader.GetString(posIBAN) 

         Dim posBIC = Reader.GetOrdinal("BIC-code") 
         TxtBICprev.Text = Reader.GetString(posBIC) 
        End While 
       End Using 
      Catch ex As OleDbException 
       MessageBox.Show(ex.Message) 
      End Try 
     End Using 
    End Using 
End Sub 
+0

이것을 시도하십시오 :'TxtGsmprev.Text = Reader.Item (THE COLUMN NAME) .ToString'은 데이터를 가져 오지 만 쿼리는 SELECT 한 열로 만 설정됩니다. – Plutonix

답변

0

, 당신의 SELECT 쿼리는 하나의 열 (Adres)을 선택합니다. 조회에서 조회하지 않기 때문에 원하는 다른 컬럼이 리턴됩니다. 이처럼 , 각 열 이름을 분리, 당신은 어느 WHERE 기준과 일치하는 레코드 (들)에 대한 모든 열을 얻을 수 *를 사용하거나 원하는 각 열을 나열 할 수 있습니다

Dim query = "SELECT Adres, Telefoonnummer, Faxnummer, GSM, BTW-nummer, Website, [Naam bank], IBAN-nummer, BIC-code FROM TblKlanten WHERE [Naam firma] = ?" 

또는

Dim query = "SELECT * FROM TblKlanten WHERE [Naam firma] = ?" 

또한 Plutonix에서 제안했듯이 열 이름을 사용하여 열 값을 가져올 수 있습니다. 최종 목적지가 String을 기대하는 경우 기본 데이터 유형에 Object 변환 할 필요가

TxtAdresprev.Text = Reader("Adres").ToString() 
TxtTelefoonprev.Text = Reader("Telefoonnumer").ToString() 
' And so on..... 

없습니다 : 당신이 텍스트 상자에 값을 할당하고 있기 때문에, 당신은 문자열을 할 것입니다.

관련 문제