2016-05-10 12 views
0

Der Code für textbox1 verwendet die Autocomplete-Funktion für das Ereignis TextChanged und zeigt Person Name aus der Datenbank als Vorschläge in textbox1 an. Wenn der Benutzer nun einen bestimmten Namen aus vorgeschlagenen Elementen in textbox1 auswählt, möchte ich textbox2 und textbox3 automatisch aus der Datenbank basierend auf Wert von textbox1 ausfüllen. Wie soll ich das machen?Wie werden andere Textfelder basierend auf dem in einem Textfeld ausgewählten Wert gefüllt?

Code of textbox1:

private void textBox1_TextChanged(object sender, EventArgs e) 
{ 
    AutoCompleteStringCollection namesCollection = new AutoCompleteStringCollection(); 
    SqlConnection con = new SqlConnection(@"***my connection string***"); 
    con.Open(); 
    SqlCommand cmnd = con.CreateCommand(); 
    cmnd.CommandType = CommandType.Text; 
    cmnd.CommandText = "SELECT * FROM tblTicketDetail"; 
    SqlDataReader dReader; 
    dReader = cmnd.ExecuteReader(); 

    if (dReader.Read()) 
    { 
     while (dReader.Read()) 
      namesCollection.Add(dReader["ContactPerson"].ToString()); 
    } 
    else 
    { 
     MessageBox.Show("Data not found"); 
    } 
    dReader.Close(); 

    textBox1.AutoCompleteMode = AutoCompleteMode.Suggest; 
    textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource; 
    textBox1.AutoCompleteCustomSource = namesCollection; 
} 
+0

So funktioniert die Auto-Vervollständigen-Funktion gut, Ihr Problem ist es, Werte für andere zwei zu erhalten Textfelder basierend auf dem ausgewählten Text in Auto-Vervollständigen-Textfeld. habe ich recht? –

+1

Überspringen Sie die erste von DataReader zurückgegebene Zeile mit Absicht? ('if (r.Read() {while (r.Read() ...') –

+0

Aktualisiert, um Tippfehler und Grammatik in der Frage zu beheben Bitte fügen Sie weitere Details zu Ihrer Frage hinzu. – Ram

Antwort

0

zuerst Ihren Code in einem Try-Catch-Block gegossen, danach, am Ende des try Blockes, erhalten den Text aus dem textbox1, die bisherigen Leser schließen und öffnen ein anderer Leser basierend auf dem textbox1 Text, füllen Sie das Textfeld2 mit dem Ergebnis und schließen Sie den zweiten Leser erneut, dann das gleiche für textbox3,

Verwandte Themen