zoukankan      html  css  js  c++  java
  • 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)发布,请转载的朋友一定要注明本网站本文章的地址或是“瑞文软件”的字样,否则一律按侵权处理,谢谢合作!

  • 相关阅读:
    转:10+年程序员总结的20+条经验教训
    年损失超20亿,手游行业第三方安全服务需求迫切
    分享:Android 应用有哪些常见,浅谈常被利用的安全漏洞?
    Android手机开发(一)
    分享:不懂技术,不要对懂技术的人说这很容易实现
    spring-boot学习六:外部配置加载顺序
    spring-boot学习五:Spring boot配置文件的加载位置
    spring-boot学习一:使用Spring Initializr快速创建Spring boot项目
    数值比较有说头
    常见SQL积累
  • 原文地址:https://www.cnblogs.com/rewwensoftware/p/13642972.html
Copyright © 2011-2022 走看看