首页 > 解决方案 > 查找数据表的空值

问题描述

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

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

是否有另一种方法来检查可空值,以避免分配导致数据表列/行中的错误。

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; }
    }

标签: c#.netnullreferenceexception

解决方案


ToString()NullReferenceException当源为空时会抛出一个。所以当你这样做时

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

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

幸运的是,该ToString()调用是多余的,因此您可以简单地删除它并拥有:

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

请记住,yourItem这里现在可以为空。


推荐阅读