ユーザーがテキスト ボックスに書き込む情報を使用して SQL データベースにクエリを実行する最初のプログラムを作成しました。これは Windows フォームを使用した C# です。私の目標は、ユーザーのタイプに応じて結果が表示される ERP ソフトウェアの検索機能に似たものにすることです (Google の予測検索機能に似ています)。
私が苦労しているのは、データベースへのクエリの数を減らすことです。現在、ユーザーが少なくとも3文字入力するまでクエリが実行されないようにしています。そうしないと、返される結果が多すぎます。
private void SearchField_TextChanged(object sender, EventArgs e)
{
string search = SearchField.Text;
if (search.Length >= 3)
{
dataGridView1.DataSource = sql.ExecuteQuery(Query(search));
}
}
私が追加したいのは、ユーザーが入力を停止するか、何ミリ秒も文字を入力しないまで、クエリの遅延です。私はタイマークラスを見てきましたが、それを適切に実装するために見つけた例に苦労しています。基本的に、コードを次のように変更したいと思います。
private void SearchField_TextChanged(object sender, EventArgs e)
{
string search = SearchField.Text;
if (search.Length >= 3 && aTimer.Time > 500) //500 is milliseconds
{
dataGridView1.DataSource = sql.ExecuteQuery(Query(search));
}
aTimer.Reset();
}
timer クラスを使用している場合、適切に実装する方法がわかりません。より良い解決策があれば、私もそれを受け入れます。