数据进行模糊查询时,报:未将对象引用设置到对象的实例的解决方法

6 篇文章 0 订阅
5 篇文章 0 订阅

网络上的一般说法有以下几种

1、ViewState 对象为Null。

2、DateSet 空。

3、sql语句或Datebase的原因导致DataReader空。

4、声明字符串变量时未赋空值就应用变量。

5、未用new初始化对象。

6、Session对象为空。

7、对控件赋文本值时,值不存在。

8、使用Request.QueryString()时,所获取的对象不存在,或在值为空时未赋初始值。

9、使用FindControl时,控件不存在却没有做预处理。

10、重复定义造成未将对象引用设置到对象的实例错误.

但在查询中报这个异常时,有很大几率是因为查询的数据在数据库里面有空值,输入的数据与数据库的数据进行比较时,匹配到空值就会抛异常。

当我们查询666 时就会出现下面的问题。

问题如下图。

原因: 查询的数据里面有空值 ,字段就会返回 null .

解决方法:其实是很简单的一个解决方法,就是我们在对数据库查询出来后的数据进行一个循环,循环查询出来的所有数据,然后在循环中判断 . 如果为null的话就给它赋值为一个空的字符串。这两者是有区别的, null会报错那我就给它一个空的字符串,这样就不会报错了。

if (!string.IsNullOrEmpty(strJglb))

                {

                    foreach (var Jglblists in Jglblist)

                    {

                        if (Jglblists.Describe == null)

                        {

                            Jglblists.Describe = "";

                        }

                    }

                    Jglblist = Jglblist.Where(m => m.Jglb.Contains(strJglb) || m.Jglbm.Contains(strJglb) || m.Describe.Contains(strJglb)).ToList();

                }

使用 foreach 循环给可以为空的字段赋值为一个空的字符串,当Describe 为null 时就给它赋值一个空的字符串。

这时再去查询问题就解决了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值