查找数据表的空值

问题描述

我正在构建一个AWS Lambda函数.net核心。

我遇到的问题是,当数据表的行/列中没有数据时,我仍然得到一个计数,依次getData != null && getData.Count() > 0认为true,然后抛出NullRefrenceError,因为转到循环时该值为null,我尝试检查数据表中的多个null类型,但它们仍认为true。

还有另一种方法来检查可为空的值,以避免赋值导致数据表列/行中的错误

public object emailGets ( AType invoiceNum,ILambdaContext context )
        {
         Connection conn = new Connection();

         try 
         {
            string query = "SELECT QUERY";
            conn.getData(query);

                DaTarow[] getData = conn.Dt.Select();


            if(getData != null && getData.Count() > 0)
            {

            foreach (var item in getData)
            {
              string yourItem = item.Field<String>("email").ToString();
            }
            return new userData { email = yourItem};
            }
             else 
            {

            return new userEmailAddress { email = null}; 
            }
            
        } catch ( Exception e )
         {
             throw e; 
         }

        }
    }

 public class userEmailAddress
    {
        public string email { get; set; }
    }

解决方法

当源为空时,

ToString()将抛出NullReferenceException。所以当你这样做

string yourItem = item.Field<String>("email").ToString();

并且item.Field<String>("email")部分返回null,您将获得该异常。

幸运的是,该ToString()调用是多余的,因此您只需删除它就可以了,

string yourItem = item.Field<String>("email");

请记住,yourItem现在在此处可以为空。