TextBoxコレクションでは、 "01-carrot"のようなデータが入っているデータベーステーブルからデータを読み込みます。テキストボックスにはAutoCompleModeが設定されています。しかし、関連するコレクションを表示する '01'と入力しても、コレクションに表示されていない 'C'を入力した場合は、コレクションを表示しないでください。C#、Visual Studio 2008
Load_pageイベントでこれをコードしようとしたところ、enter code here
がロードされました。
AutoCompleteStringCollection MyCollection;
private void clubitem_no()
{
try
{
// string a = txtitem.Text + "%";
// DataTable allnames = new DataTable();
// MySqlCommand cmdauto = new MySqlCommand("SELECT CONCAT(product_id,'-',product_name)AS product_name FROM product_details WHERE product_id LIKE '"+ a + "' OR product_name LIKE '" + a + "'", conn);
MySqlCommand cmdauto = new MySqlCommand("SELECT CONCAT(product_id,'-',product_name)AS product_name FROM product_details ", conn);
conn.Open();
MySqlDataReader newdr = cmdauto.ExecuteReader();
MyCollection = new AutoCompleteStringCollection();
while (newdr.Read())
{
string b = newdr.GetString(0);
MyCollection.Add(newdr.GetString(0));
}
// txtitem.AutoCompleteCustomSource = MyCollection;
txtitem.AutoCompleteMode = AutoCompleteMode.Suggest;
txtitem.AutoCompleteSource = AutoCompleteSource.CustomSource;
// AutoCompleteStringCollection DataCollection = new AutoCompleteStringCollection();
txtitem.AutoCompleteCustomSource = MyCollection;
newdr.Close();
conn.Close();
}
catch (MySqlException ex)
{
MessageBox.Show(ex.ToString());
conn.Close();
}
}
標準オートコンプリートはテキストのみの先頭から検索します。テキストの途中で検索が必要な場合は、ロジックのオートコンプリートを記述するか、サードパーティのコンポーネントを使用する必要があります。 –