2016-05-10 11 views
0

textbox1のコードは、TextChangedイベントでオートコンプリート機能を使用し、textbox1に推奨項目としてデータベースのPerson Nameを表示します。ユーザーがtextbox1の候補アイテムから特定の名前を選択した場合、textbox1の値に基づいてデータベースからtextbox2textbox3を自動入力します。私はどうしたらいいですか?テキストボックスで選択された値に基づいて他のテキストボックスを埋める方法は?

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

したがって、自動補完機能はうまくいきます。自動補完テキストボックス内の選択されたテキストに基づくテキストボックス。私は正しい? –

+1

DataReaderから返された最初の行を目的に沿ってスキップしますか? ( 'if(r.Read(){while(r.Read()...') –

+0

質問に入力ミスや文法を修正するために更新されました。 – Ram

答えて

0

まず、前のリーダーを閉じて、その後、トライ圏の終わりに、TextBox1テキストボックスからテキストを取得し、トライキャッチブロック内のコードをキャスト、そしてオープンテキストボックス1のテキストに基づいた別のリーダー、結果をテキストボックス2に入力してもう一度閉じる、テキストボックス3について同じ操作を行う

関連する問題