问题描述
C#.Winform數據庫中的字段為varchar(20),文本框最大長度設為20,可是如果用户输入20个中文时,长度没有发生任何变化,可是它却占用了40个字节,也就是说根本无法插入到数据库中去,請問該如何限制
解决方案
解决方案二:
<asp:TextBoxmaxLength=10>
解决方案三:
改varchar(20)为nvarchar(20)...因为.NET默认采用UTF-8编码...需要采用Unicode字符类型存储...
解决方案四:
謝謝兩位的指教,但如果maxLength=10的話就只能輸入10個英文字符了,我要是可以輸入20個的
解决方案五:
中文是需要每个2字节的。
解决方案六:
...是啊,但我不知道該怎麼判斷,所以請多多指教了....
解决方案七:
那就用GB2312编码
解决方案八:
這個好象沒辦法判斷吧!
解决方案九:
有哪位做過這些控制的嗎?貼出來供大家分享
解决方案十:
改varchar(20)为nvarchar(20)...说的很清楚了...
解决方案十一:
香港1010电讯的网页上有一个这样的控件,我记得是javascript做的
解决方案十二:
香港流动通讯有限公司www.hkcsl.com公司把这个地址给ban了--,lz自己找,我记得是在一个在线发短信的功能里,他的那个限制也是英文和数字144个,中文72个
解决方案十三:
离开控件时,自己做个判断试试。inti=System.Text.Encoding.Default.GetByteCount(text1.text);if(i>20){.....}
解决方案十四:
改varchar(20)为nvarchar(20)...说的很清楚了...不好意思,是我的意思沒說清楚,我是想控制中文最多只能輸入10個,英文可以輸入20個,而按你這樣做是不管是中文還是英文最多都可以輸入20個了現在解決了StringmText=TextBox1.text;mMaxLen=TextBox1.MaxLength;byte[]lenbye=System.Text.Encoding.Default.GetBytes(mText);if(lenbye.Length>mMaxLen){e.Handled=true;}