text 字符限定问题,在线等!!! 比如说 “wo是谁啊” 应当取 “wo是谁” “abcdefgh” 应当取 “abcdef” "我是谁啊" 我是谁 "我是谁" "我是shui'a" 我是谁 "我是sh"这样就可以和数据库字段的长度匹配!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 比如说 “wo是谁啊” 应当取 “wo是谁” “abcdefgh” 应当取 “abcdef” "我是谁啊" 应当取 "我是谁" "我是shui'a" 应当取 "我是sh"这样就可以和数据库字段的长度匹配!!! 我用web窗体的话是如此的:protected System.Web.UI.WebControls.TextBox txt;string input="";......input=txt.Text.Substring(0,6); MessageBox.Show(txtCpbh.Text.Substring(0,6)); 关键问题是限制输入长度不能区别 汉字 比如我限定 textBox 的最大长度 为 6, “我是不知道了” 这样的字符串也可以输入,但是在数据库中只能存放 “我是不” 三个字符。顺便回复 angxain(張憲) Substring 这个方法是限定不了的 char[] c=new char[10]; //char[3] c=this.textBox1.Text.ToCharArray(); string s=new string(c,0,3) ; //string s=new string(c); MessageBox.Show(s); 我随便做了一个textbox,一个button,一个label你在textbox输入一些字符,然后按按钮,就会自动截取前6个字符放进label里面以下是button的语句:Byte [] input= System.Text.Encoding.GetEncoding("GB2312").GetBytes (this.textBox1.Text.ToString());this.label1.Text=System.Text.Encoding.GetEncoding("GB2312").GetString(input,0,6); 这样试试。char[] MaxLengthString=new char[6];MaxLengthString=TextBox1.Text; 对不起,我理解错了你的意思,用下面的BigEndianUnicode就可以啦,因为它会把所有字符都默认成为汉字那样占两个byte,你要截取前6个字符,用(input,0,12)就行了(包括英文和汉字的)!! Byte [] input= System.Text.Encoding.BigEndianUnicode.GetBytes (this.textBox1.Text.ToString()); this.label1.Text=System.Text.Encoding.BigEndianUnicode.GetString(input,0,12); 搂主,你还没有搞好啊?? :(我帮你做了一个判断,你copy进你的程序里面就行了:(其中textBox1就是输入的内容,截取后在label1输出)int lenth=System.Text.Encoding.BigEndianUnicode.GetByteCount(this.textBox1.Text.ToString()); Byte [] input= System.Text.Encoding.BigEndianUnicode.GetBytes (this.textBox1.Text.ToString());if (lenth>=6){ this.label1.Text=System.Text.Encoding.BigEndianUnicode.GetString(input,0,12);}else { this.label1.Text=System.Text.Encoding.BigEndianUnicode.GetString(input,0,lenth);} 哎哟,写错了!!应该是if(lenth>=12),对不起!!呵呵:) int lenth=System.Text.Encoding.BigEndianUnicode.GetByteCount(this.textBox1.Text.ToString()); Byte [] input= System.Text.Encoding.BigEndianUnicode.GetBytes (this.textBox1.Text.ToString());if (lenth>=12){ this.label1.Text=System.Text.Encoding.BigEndianUnicode.GetString(input,0,12);}else { this.label1.Text=System.Text.Encoding.BigEndianUnicode.GetString(input,0,lenth);} 新的写好了:(判断是否为6个byte,其中全部Ascii码都是1byte,汉字的全部都是2byte)int lenth=System.Text.Encoding.GetEncoding("GB2312").GetByteCount(this.textBox2.Text.ToString()); Byte [] input= System.Text.Encoding.GetEncoding("GB2312").GetBytes (this.textBox2.Text.ToString());if (lenth>=6){ this.label2.Text=System.Text.Encoding.GetEncoding("GB2312").GetString(input,0,6);}else { this.label2.Text=System.Text.Encoding.GetEncoding("GB2312").GetString(input,0,lenth);} 樓主是什么數據庫?有這個必要嗎你先在TEXTBOX的MAXLENTH中輸入你的最大字串長度(中英文字符在此相同)當大于你的限定長度時,就輸入不了,這樣不就可以了嗎? 方法的参数里有一个timer,但是需要用到这个timer的start等方法,该怎么办?? 给Button定义快捷键 建表思路 菜鸟问题,想了好久一直没实现,请高手指点 请问C#.net里面怎么实现 button的热键 没人会吗????????????????请看里面 下面是一段C++程序代码,请高手将它用C#转换一下,主要是指针部分的转化,谢谢 Grid上多选后,右键编辑,删除问题 如何在窗体启动时就自动隐藏 怎么定义自己的头文件! 我买了清华大学出版社出的《C#技术内幕》 狗是什么呀?? 从数据库读取图片问题。急!!!!!
“wo是谁啊” 应当取 “wo是谁”
“abcdefgh” 应当取 “abcdef”
"我是谁啊" 应当取 "我是谁"
"我是shui'a" 应当取 "我是sh"这样就可以和数据库字段的长度匹配!!!
protected System.Web.UI.WebControls.TextBox txt;
string input="";
......
input=txt.Text.Substring(0,6);
比如我限定 textBox 的最大长度 为 6,
“我是不知道了” 这样的字符串也可以输入,但是在数据库中只能存放 “我是不” 三个字符。顺便回复 angxain(張憲) Substring 这个方法是限定不了的
char[] c=new char[10]; //char[3]
c=this.textBox1.Text.ToCharArray();
string s=new string(c,0,3) ; //string s=new string(c);
MessageBox.Show(s);
你在textbox输入一些字符,然后按按钮,就会自动截取前6个字符放进label里面
以下是button的语句:
Byte [] input= System.Text.Encoding.GetEncoding("GB2312").GetBytes (this.textBox1.Text.ToString());
this.label1.Text=System.Text.Encoding.GetEncoding("GB2312").GetString(input,0,6);
char[] MaxLengthString=new char[6];
MaxLengthString=TextBox1.Text;
Byte [] input= System.Text.Encoding.BigEndianUnicode.GetBytes (this.textBox1.Text.ToString());
this.label1.Text=System.Text.Encoding.BigEndianUnicode.GetString(input,0,12);
我帮你做了一个判断,你copy进你的程序里面就行了:
(其中textBox1就是输入的内容,截取后在label1输出)
int lenth=System.Text.Encoding.BigEndianUnicode.GetByteCount(this.textBox1.Text.ToString());
Byte [] input= System.Text.Encoding.BigEndianUnicode.GetBytes (this.textBox1.Text.ToString());
if (lenth>=6)
{
this.label1.Text=System.Text.Encoding.BigEndianUnicode.GetString(input,0,12);
}
else
{
this.label1.Text=System.Text.Encoding.BigEndianUnicode.GetString(input,0,lenth);
}
Byte [] input= System.Text.Encoding.BigEndianUnicode.GetBytes (this.textBox1.Text.ToString());
if (lenth>=12)
{
this.label1.Text=System.Text.Encoding.BigEndianUnicode.GetString(input,0,12);
}
else
{
this.label1.Text=System.Text.Encoding.BigEndianUnicode.GetString(input,0,lenth);
}
Byte [] input= System.Text.Encoding.GetEncoding("GB2312").GetBytes (this.textBox2.Text.ToString());
if (lenth>=6)
{
this.label2.Text=System.Text.Encoding.GetEncoding("GB2312").GetString(input,0,6);
}
else
{
this.label2.Text=System.Text.Encoding.GetEncoding("GB2312").GetString(input,0,lenth);
}