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

posted @   瑞文软件  阅读(2903)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示