2012-04-13 51 views
2

所以這裏是我想要做的一個例子。讓我們假設我正在製作一個足球遊戲提交程序,並且我有幾個我應該填寫的字段,其中2個我希望自動完成。主隊的一個文本框和客場隊的一個文本框。如何在C#和SQL Server中實現自動完成功能,值得嗎?

這裏的數據庫表會是什麼樣一個簡單的例子:

----------------------------- 
| home_team | away_team | 
----------------------------- 
| Chelsea FC | Arsenal | 
| Liverpool | Norwich FC | 
| Man. City | Everton | 
| Tottenham | Stoke City | 

我想要的程序,當我在任何兩個文本框的輸入內容加載建議或結果檢查每個球隊在表。這是爲了根據以前提交的內容,更簡單快捷地輸入正確的團隊名稱。

這將如何完成?

另外,如果我這樣做,是否會對數據庫造成太大的壓力,並在每次下一次提交時變得更糟?因爲它似乎必須檢查整個「home_team」和「away_team」列,並且每個字母都輸入到其中一個文本框中。

這是Windows窗體。

+0

是前端winforms還是asp? – emd 2012-04-13 15:40:34

+0

@emd Windows窗體 – Alternatex 2012-04-13 15:42:46

回答

4

您將明確希望在加載表單時獲取所有數據和字段。每次鍵入字母時執行請求都是一個糟糕的主意。

一旦你有所有的領域,只需將它們放在一個列表中,並有AutoComplete propreties您的文本框。

設置Auto Complete ModeAuto Complete Source,就完成了!

檢查這個例子,它非常簡單!

Auto Complete TextBox in C#

+0

什麼時候你會說它不值得。我想我最終會在數據庫中擁有300-500個字符串,每次載入表單時,程序都會加載所有的字符串。對於不到100個結果,這可能效果最好。 – Alternatex 2012-04-13 15:53:30

+2

我不會擔心,但它比你想象的要高得多!我曾經用3000個字符串來完成這個工作,它仍然能夠很好地工作。在演出問題之前,你仍然有很多空間。當你開始遇到問題時,你可以應用不同的策略來提高性能,例如以異步方式加載字符串或緩存字符串。 – Alexandre 2012-04-13 15:57:22