2015-10-26 54 views
0

我使用C#窗體窗體。C#WinForm - 按鍵和顯示值從數據庫列根據輸入文本

這是場景。

我有一個文本字段,用戶可以在其中鍵入連接到數據庫名稱列的字/字母。當用戶輸入單詞/字母時,下拉菜單會自動顯示保存在數據庫中名稱列中的名稱。當我點擊與我的輸入文本相匹配的名稱時,我可以點擊它並自動用我選擇的名稱填充文本字段。

txt_names.Text // The name of my textfield. 

private void txt_names_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    // I have no codes here. 
} 

可能最好的方法是使用按鍵或keydown。任何想法如何捕獲數據庫中的名稱。它像ajax的東西,但在C#窗體窗體。

任何幫助?請在下面放下您的回答/評論。先謝謝你!

回答

1

我認爲這會幫助你,建立在這種情況下,我的方法是AutoCompleteTxtBox()

void AutoCompleteTxtBox() 
    { 
     txt_names.AutoCompleteMode = AutoCompleteMode.SuggestAppend; 
     txt_names.AutoCompleteSource = AutoCompleteSource.CustomSource; 
     AutoCompleteStringCollection coll = new AutoCompleteStringCollection(); 

     OleDbConnection conn = new OleDbConnection(); 
     conn.ConnectionString = "your connection string"; 
     conn.Open(); 
     OleDbCommand cmd = new OleDbCommand(); 
     cmd.Connection = conn; 
     cmd.CommandText = "select * from your DataBase table name"; 
     OleDbDataReader myReader = cmd.ExecuteReader(); 

     while (myReader.Read()) 
     { 
      string lname = myReader["the column name you want to autocomplete"].ToString(); 
      coll.Add(lname); 
     } 

     txt_names.AutoCompleteCustomSource = coll; 
     conn.Close(); 
    } 

然後調用,你必須InitializeComponent()方法這樣

該表格上的方法
public Form1() 
    { 
     InitializeComponent(); 
     AutoCompleteTxtBox();   

    } 
+0

它的工作原理!謝謝你,先生!上帝保佑!^_^ –

+0

很高興幫助@mark –

+0

是的,先生! :) @ sea50 –

1

您可以通過使用組合框控件來實現。只需填充一個字符串列表即可。

然後打開自動填充選項。