• VB.NET中错误提示:从类型“DBNull”到类型“String”的转换无效,解决方法


    以前在VB.NET中使用使用ADO访问SQL Server数据库,从数据库中读取数据时,经常会遇到这样的错误提示:从类型“DBNull”到类型“String”的转换无效,如图所示:

    这个问题曾经困扰了我很长时间,因为这个错误的提示让人疑惑:从类型“DBNull”到类型“String”的转换无效,还有下面的解释“当从一个数字执行强制转换时,值必须是一个小于无限大的数字”——出现错误的字段明明是字符类型的,为什么会提示说从数字类型转换成String类型呢?只不过是因为在数据库中该字段会存在内容为空的情况,而且这种错误提示并不是每一次都存在的:因为同样为字符类型的字段,同样存在内容为空的情况下,有的时候会产生错误提示,有的时候就不会。以至于曾经很长一段时间内都找不到解决方法,只能在程序里面判断当该字段的用户输入内容为空的时候,使用一个“无”字来代替,这样不仅操作繁琐,而且显得不伦不类。

    直到有一天,我突发奇想的将括号外层的Trim()函数删除了,没想到错误提示消失了!

    明白了,原来一切都是这个Trim()函数搞的鬼,看来是因为在读取数据库中某个字段的值为空的时候,再使用Trim()函数来删除读取的内容两端的空格的话,有的时候就会产生错误,至于为什么会这样呢,到现在都不明白,因为在VB6.0当中,同样的情况下是不会出现这个问题的(而且那个错误提示也真是让人困惑),不过又不能不使用这个Trim()函数啊,因为从SQL Server数据库里面读取的字段数据会莫名其妙的带上一些空格,如果不使用Trim()函数将这些空格清除了,那读取后赋值给相关的控件内显示的时候就会非常难看。

    不过好在VB.NET当中还提供了另外一种删除两端空格的方法,那就是直接在该字段代码后面加上".ToString"方法输出内容,如果还需要删除两端的空格的话,还可以继续加上.Trim方法来执行删除两端空格的操作,而且这种方式还不会产生错误!如图所示:

     所以如果大家也遇到了这个错误提示,不妨看看是不是那个Trim()函数的问题吧!

    原创性声明:
    此文章实属原创,目前仅在本站和瑞文软件的官方网站(地址:https://www.rwrjhao.com/details?article_id=47)发布,请转载的朋友一定要注明本网站本文章的地址或是“瑞文软件”的字样,否则一律按侵权处理,谢谢合作!

  • 相关阅读:
    java 面向对象(六):类结构 方法(三) java的值传递机制
    java 面向对象(五):类结构 方法(二) 关键字:return;方法的重载;可变个数形参的方法
    java 面向对象(四):类结构 方法(一)
    java 面向对象(三):类结构 属性
    java 面向对象(二):JVM内存结构
    java 面向对象(一):类与对象
    java 基本语法(十三) 数组(六)数组的常见异常
    java 基本语法(十二) 数组(五)Arrays工具类的使用
    java 基本语法(十一) 数组(四)数组的常见算法
    java 基本语法(十) 数组(三) 二维数组
  • 原文地址:https://www.cnblogs.com/rewwensoftware/p/13642972.html
Copyright © 2020-2023  润新知