0

データベースからのデータフィールドで埋められたコンボボックスがありJobCodeます。何千もjobcodeあり、ユーザーがいずれかを選択する必要がある場合、コンボボックス内のjobcodeすべての を下にスクロールする必要があります。jobcodeユーザーが文字を入力すると、リストの上部にあるコンボボックスにその文字で始まる sjobcodeが表示され、ユーザーが簡単に選択できるようにすることはできますか? jobcodeたとえば、コンボボックスの keypressevent にコードを追加するようなものです。

ユーザーは引き続きjobcodeリスト内の から選択する必要があります。部分的または誤って入力されたデータを保持しないと、挿入および更新時に誤ったデータ入力が発生する可能性があります。

public void jobcomboboxload()
{
       OleDbConnection oleDbConnection1 = new System.Data.OleDb.OleDbConnection(connString);
       oleDbConnection1.Open();
       OleDbCommand oleDbCommand1 = new System.Data.OleDb.OleDbCommand("Select jobpk,jobcode from  jobcodemastertable", oleDbConnection1);
       OleDbDataReader reader = oleDbCommand1.ExecuteReader();
       DataTable dt = new DataTable();
       dt.Columns.Add("jobpk", typeof(int));
       dt.Columns.Add("jobcode", typeof(string));
       dt.Load(reader);
       cmbjobcode.ValueMember = "jobpk";
       cmbjobcode.DisplayMember = "jobcode";
       cmbjobcode.DataSource = dt.DefaultView;

       oleDbConnection1.Close();
   }

jobcodeユニークな分野です。

4

2 に答える 2

1
  • cmbjobcode.AutoCompleteMode = AutoCompleteMode.Suggest (または列挙型の他の値) を使用します。
  • cmbjobcode.AutoCompleteSource = AutoCompleteSource.ListItems を使用します。
  • フィールド jobcode の句 ORDER BY を含むクエリを変更します

usingOleDbConnection、OleDbCommand、および OleDbDataReader に関するステートメントを忘れないでください。これにより、前述の変数の適切な破棄が保証されます。

不完全な値をチェックするには、Validating イベントを追加し、そのイベントで、入力されたテキストが文字列に存在するかどうかをチェックする必要があります。
コンボボックスには、役立つ FindStringExact() というメソッドがあります。

于 2012-04-05T21:18:14.703 に答える
1

ComboBox AutoCompleteModeプロパティをSuggestANDAutoCompleteSourceに設定しListItemsないと、提案が表示されません。

スティーブが言ったように、クエリを変更し、リクエスト フィールドに ORDER BY を追加して、SELECT ステートメントで必要な順序を設定できます。

ご不明な点がございましたら、お気軽にお問い合わせください。

于 2012-04-05T21:25:55.530 に答える