2011-06-22 85 views
1

我有一個文本框基本上用戶將輸入一個9位數字或字母。從那裏,我想有一個buttonclick事件,對MSSQL數據庫中的2列進行驗證。首先檢查號碼是否存在,然後檢查它是否處於活動狀態。VB ADO.NET Textbox輸入驗證對MSSQL DB

有大約27000行數字,所以我的主要問題是什麼是處理這樣的事情的最佳方法。

  • 我應該在click事件中創建一個視圖並進行驗證。
  • 我應該在sql中創建一個接受輸入參數並在click事件中調用它的存儲過程。

我也在閱讀關於將信息存儲在數據集中的信息,但是我認爲這些記錄會是一個緩慢的過程。

如果這些方法都不是正確的,我將不勝感激正確的方式去做這個,也許幾個鏈接,可以讓我開始。我搜索過,但大多數人都在使用數據集,如果這不會影響我的表現,我會非常樂意以這種方式來對待它,只是不太確定。

感謝

+1

你不能同時使用一個查詢嗎? 'SELECT activeflag FROM YourTable WHERE Number = YourNumber'。如果結果是'NULL',它不存在,否則它存在*和*你有你的標誌。 –

回答

0

存儲過程和視圖應該工作一樣,只要你有一個篩選下來正是你想要的數據,而不是(在視圖的情況下),where子句返回從所有行查看並在內存中過濾。它需要像這樣:

Select Number, Activer from ViewName where number = (your number) 

EXEC spValidateNumber @Number = (your number) 

至於什麼時候做您的驗證,如果這個過程需要比,說更多,一秒鐘,你應該有用戶問通過單擊按鈕進行驗證,以便預測延遲。如果它運行在文本框的lostfocus事件上,它應該運行而沒有任何明顯的延遲。

+0

感謝您的迴應,但是這是一個比使用數據集來保存數據然後必須以這種方式與sqldatabase進行通信更好的方法嗎? – Tim

+0

這實際上取決於您與SQL進行通信的成本以及應用程序中的內存量。如果要將所有27k行保留在內存中,並且想知道是否存在值,則必須遍歷行直到找到該值,否則需要構建和使用內存中的索引, SQL已經使用。我認爲它可能會更便宜,更容易使用SQL。 – therealmitchconnors

+0

感謝您的幫助 – Tim