报未将对象引用设置到对象的示例的错误原因

在C#的查询中报的最多错误应该就是“未将对象引用设置到对象的示例”,那么为什么会报这种错误呢?主要是因为你要查询的数据在数据库中的字段有空的值,想要得到解决方法,就请看下面的讲解吧!

举例:

我要查询老朱的数据信息,但是在查询的时候就会报未将对象引用设置到对象的示例的错误。

mysql在下载中出现未将对象引用设置到对象实例怎么解决 未将对象引用实例解决_字段


但是它却给我报了“未将对象引用设置到对象的示例”这种错误,

mysql在下载中出现未将对象引用设置到对象实例怎么解决 未将对象引用实例解决_对象引用_02


一般遇到这种错误就要先去控制器断点看一下究竟是哪里处理问题,把要搜索的数据一条一条地去看,就比如我这里,现在断个点看一下到底是哪里出了问题。

mysql在下载中出现未将对象引用设置到对象实例怎么解决 未将对象引用实例解决_字段_03


找出问题了,因为我在查询的时候,查询的数据中也包含了可以查询客户名称的字段,甚至更多的字段,而现在我要查询的是联系人的字段,却给我报错的最大原因是因为我要搜索的数据中含有空格或者是为空的数据,从而影响到了我要搜索的数据,如何解决呢?

解决方法:在查询数据的时候通过三目运算符来转换一下

查询数据,将在数据库的里面可以为空的数据转换一下,不能为空的数据就不必管,

如何通过三目运算符进行判断?

例子: 判断tbA.A是否为空(null),为空的话就让tbA.A为字符串的空(“”),否则的话就为就让tbA.A等于数据库里面的值。

A = tbA.A == null ? “”: tbA.A

代码如下:

List listClient = (from tbClient in myModels.PW_Client
 where tbClient.ClientToVoidNo != false
 orderby tbClient.ClientID descending
 select new clientVo
 {
 ClientID = tbClient.ClientID,
 ClientName = tbClient.ClientName.Trim(), //必填字段
 ClientNum = tbClient.ClientNum.Trim(), //必填字段
 //选题字段需判断是否为空的情况
 Clientlinkman = tbClient.Clientlinkman != null ? tbClient.Clientlinkman.Trim() : “”,
 ClientPhone = tbClient.ClientPhone != null ? tbClient.ClientPhone.Trim() : “”,
 ClientAddress = tbClient.ClientAddress != null ? tbClient.ClientAddress.Trim() : “”,
 ClientRemark = tbClient.ClientRemark != null ? tbClient.ClientRemark.Trim() : “”
 }).ToList();

另外查询数据库的数据的时候,如果数据库里面的数据有空格,那么在查询数据的时候就要把空格去掉,否则也一样会报错,去空格:A = tbA.A.Trim()。
总结:
必填数据(即不能为空的数据可以直接去空格),选填的数据要运用三目运算符判断一下,如果数据为空时就让它为空,不为空时就让它去空格。
或许你们有更好的解决方法,请教教小妹,谢谢!