比如说  
      “wo是谁啊” 应当取 “wo是谁” 
      “abcdefgh” 应当取 “abcdef”
       "我是谁啊"  我是谁  "我是谁"
       "我是shui'a"  我是谁 "我是sh"这样就可以和数据库字段的长度匹配!!!

解决方案 »

  1.   

    比如说  
          “wo是谁啊” 应当取 “wo是谁” 
          “abcdefgh” 应当取 “abcdef”
           "我是谁啊"  应当取  "我是谁"
           "我是shui'a"  应当取 "我是sh"这样就可以和数据库字段的长度匹配!!!
      

  2.   

    我用web窗体的话是如此的:
    protected System.Web.UI.WebControls.TextBox txt;
    string input="";
    ......
    input=txt.Text.Substring(0,6);
      

  3.   

    MessageBox.Show(txtCpbh.Text.Substring(0,6));
      

  4.   

    关键问题是限制输入长度不能区别 汉字 
      
    比如我限定 textBox 的最大长度 为  6,
       “我是不知道了” 这样的字符串也可以输入,但是在数据库中只能存放 “我是不” 三个字符。顺便回复   angxain(張憲) Substring 这个方法是限定不了的 
      

  5.   


    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);
      

  6.   

    我随便做了一个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);
      

  7.   

    这样试试。
    char[] MaxLengthString=new char[6];
    MaxLengthString=TextBox1.Text;
      

  8.   

    对不起,我理解错了你的意思,用下面的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);
      

  9.   

    搂主,你还没有搞好啊?? :(
    我帮你做了一个判断,你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);
    }
      

  10.   

    哎哟,写错了!!应该是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);
    }
      

  11.   

    新的写好了:(判断是否为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);
    }
      

  12.   

    樓主是什么數據庫?有這個必要嗎你先在TEXTBOX的MAXLENTH中輸入你的最大字串長度(中英文字符在此相同)當大于你的限定長度時,就輸入不了,這樣不就可以了嗎?