SqlParameter[] parameters = {new SqlParameter("@intro", SqlDbType.VarChar,200)}
parameters[0].Value = model.intro;
=============
数据库设置的255个字符,以前如果太长的话,就会报以下的错误将截断字符串或二进制数据。
语句已终止。 
有没好的解决方案,能如超过200个字符,只保存200个,其余的丢弃,不要提示出错。。谢谢另:下载的一套Access程序中,也是用这样的代码,就能实现超过设定的值,也能提交保存,不过只取设定值的长度字符。

解决方案 »

  1.   

    subString ,对需要处理的字符提取200长度就好。
      

  2.   

    if(System.Text.Encoding.Default.GetBytes(model.intro).Length<=200)
    {
    }
    否则修改为text
      

  3.   

    貌似设置Size以后不会产生字符截断异常
      

  4.   

    SqlParameter[] parameters = {new SqlParameter("@intro", SqlDbType.VarChar,200)} 
    parameters[0].Value = model.intro; 这应该在执行的时候在.net机制下就会报异常,怎么还会到数据库才报异常。。那要这个类型长度有什么用。。---
    截取字符串string.SubString
      

  5.   

    1.改变数据库字段最大长度
    2.改变数据库字段类型,如text
    3.在insert的时候判断是否大于200
    img.length>200?img.substring(0,200):img;