问题描述: 
页面上有个textBox,对它的长度分别进行了前台和后台的验证,比如长度不能超过500,可是对于textBox的换行,在保存到数据库时也进行保存,所以,即使我的长度不超过500,可是保存时还是有错误提示说数据库溢出?请问这个问题如何解决?
多谢!

解决方案 »

  1.   

    如果数据库限定了500,那么就要把回车等字符算上,而且如果有htmlencode等方法转换过了,要判断转换后的字符的总数不要超过500
      

  2.   

    同意楼上的,回车的话实际上也是有几个字符组成的不过在html并不显示出来,你如果要存到数据库里面在取出来的话,你就可以看到了,这些也要算进入的。
      

  3.   

    如果数据库限定了500,那么就要把回车等字符算上,而且如果有htmlencode等方法转换过了,要判断转换后的字符的总数不要超过500
    ————————————————————————————
    如何才能把回车等算上?请明示。
      

  4.   

    楼上不是说了吗。htmlencode 转换,然后判断长度是否大于500,不过这样有效字符就不到500了,或许有很多 回车 换行等字符也算在内了。
    如果数据库的字段类型允许改,把数据类型改成text就可以了,不能改就处理你的输入字符串吧, 把特殊字符都处理掉
      

  5.   

    我使用htmlencode了,可是和没有使用时一样长,看我哪里出错了?
      int i=事由.Length;
    int count=Server.HtmlEncode(事由).Length;
    if(this.T_事由.Text.Trim().Length >500)
    {
    d8zone20.WebPage.Alert.AlertOnly(this,"事由500字以内!");
    return false ;
    }
      

  6.   

    晕倒,不能直接用Length呀,看看下面的示例        string sString = "大家好sdafa";
            int charCount = System.Text.Encoding.Default.GetByteCount(sString.ToCharArray());
                return charCount.ToString();
      

  7.   

    int count=Server.HtmlEncode(事由).Length;
    if(System.Text.Encoding.Default.GetByteCount(事由.Text.Trim().ToCharArray());>500)
    {
        d8zone20.WebPage.Alert.AlertOnly(this,"事由500字以内!");
        return false ;
    }
      

  8.   

    int count=Server.HtmlEncode(事由).Length;
    if(System.Text.Encoding.Default.GetByteCount(事由.Text.Trim().ToCharArray())>500)
    {
        d8zone20.WebPage.Alert.AlertOnly(this,"事由500字以内!");
        return false ;
    }刚才多了个;
      

  9.   

    上面的代码判断本来就没用htmlEncode阿,你的判断this.T_事由.Text.Trim().Length>500使用了吗?应该判断count>500 才算使用了
      

  10.   

    if(System.Text.Encoding.Default.GetByteCount(事由.Text.Trim().ToCharArray())>500)
    {
        d8zone20.WebPage.Alert.AlertOnly(this,"事由500字以内!");
        return false ;
    }
      

  11.   

    if(System.Text.Encoding.Default.GetByteCount(textbox1.Text.Trim()) > 500)
    {
    }
      

  12.   

    数据库字段类型改成text,或者把长度比你判断的值500再适当大点
      

  13.   

    if(System.Text.Encoding.Default.GetByteCount(textbox1.Text.Trim()) > 500)