首页 > 代码库 > System.Data.SqlClient.SqlException: 将截断字符串或二进制数据

System.Data.SqlClient.SqlException: 将截断字符串或二进制数据

      问题:

      “ System.Data.SqlClient.SqlException ”类型的未经处理的异常在System.Data.dll中发生。其他信息:将截断字符串或二进制数据

       这是在做机房收费系统基本数据设定这一模块时遇到的问题。


       本来在代码的UI层用Try……Catch捕获到了异常,如下图:


        


        但没遇到过这个问题的人,光看这个肯定也解决不了问题,于是我把Try……Catch注释掉,找到了抛异常的详细信息:


      解决:

       一看是 “ System.Data.SqlClient.SqlException ”,想都不用想,肯定是数据库方面的问题,经过调试,发现向数据库中插入的字段值basicDataBLL.SetDate的值为“2014/6/17 星期二”:

        

       但是我在数据库中给这个字段设置的数据类型为varchar(10),这不是远远小于“2014/6/17 星期二”所占的空间嘛!于是果断增加了数据类型的容量,把varchar(10)编程varchar(20),问题得到解决。

       

       总结:

      又进行了一番测试,在数据库中把其他一些字符串、text等类型的字段的可存储容量减小,也出现了这个问题,得到了一个结论:

      此问题的产生原因是数据库中的某字段的数据类型不足以存储将要向该字段中插入的值的数据长度,问题出现时,将相应字段的数据类型的长度适当增加即可。