2010-03-15 68 views
2

我在數據庫中有一個Abc字段,我想確保用戶不會跨越數據庫中字段的限制,因此我使用的驗證會說「您不能輸入超過50個字符」。如何驗證字段長度

現在的問題是,因爲存儲中文,印度語腳本和其他這樣的語言的內存需要超過1個字節我將如何驗證長度。

現在發生的情況是,用戶輸入了30個字符,他得到一條顯示消息「您不能輸入超過50個字符」。

爲解決我所知道的是,我可以增加數據庫的大小或檢查的字節長度,但它不似乎是一個好主意。

你會採用什麼方法來完成它?

+1

什麼類型的DB的就是這個,SQL SERVER?此外,該字段是什麼類型,Nvarchar? – 2010-03-15 11:45:56

回答

3

如果你的GUI是的WinForms或WPF,那麼你應該能夠設置上很好地阻止人們進入超過指定的字符數,例如文本字段的最大長度

myTextBox.MaxLength = 50 

但是你可以從VS Designer中設置此 - 選擇文本框,並轉到其MaxLength屬性

+0

你或許可以做到這一點的ASP.Net形式,雖然我沒有檢查.... – Calanus 2010-03-15 11:51:30

+0

這個解決方案,以及其他nvarchar的建議和任何情況下,應很好的照顧。 +1表單示例。 – IAbstract 2010-03-15 12:12:56

3

在數據庫中使用nvarchar類型,它限制字符數而不是字節數。

1

如果你使用.Net和SQl服務器的nvarchar字段,你應該沒事我認爲

nvarchar的存儲每字符的2字節無論如何,所以應滿足Unicode字符串達網絡將通過將其與沒有問題。 (換句話說,在.NET和SQL的長度都在字符,而不是字節爲單位,如果你使用數據庫中的數據類型爲nvarchar)。