我剛剛編寫了我的第一個程序,該程序用用戶寫入文本框的信息查詢SQL數據庫。這是使用Windows窗體的C#。我的目標是讓它與我們的ERP軟件中的搜索功能類似,其中結果以用戶類型顯示(類似於Google的預測搜索功能)。C#在用戶鍵入文本框時延遲SQL查詢
我正在努力減少查詢數據庫的數量。現在我有它,這樣查詢纔會執行,直到用戶鍵入至少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();
}
如果使用定時器類,我不知道如何正確地執行它。如果有更好的解決方案,我也會接受。
爲什麼不能有一個「提交」按鈕?當然,你不會有預測結果,但你會限制你的查詢。 – MyCodeSucks 2013-03-14 14:02:19
@BradM OP聲明他的項目是'C#using windows forms' – Seany84 2013-03-14 14:03:20
是的我正計劃在用於搜索數據庫的客戶端窗口應用程序窗體中實現計時器。 – Matt 2013-03-14 14:05:17