簡體   English   中英

如何檢查C#中數據表中的列值是否為null?

[英]How to check if a column value is null in a datatable in C#?

所以我想做的是遍歷數據表的列以獲取其價值。

例如,這是我的數據表

emp_id      f_name         email            remarks
1            Jim          Jim@yahoo.com
2            Apple        apple@gmail.com  
3            Peter
4            Amy          amy@gmail.com

在此數據表中,您可以看到Peter的電子郵件丟失了。 我想檢索此記錄,並在備注“ No email”中設置一個值。

我怎樣才能做到這一點?

嘗試使用此查詢,因此您不必檢索和修改DataTable:

select  emp_id,
        f_name,
        email,
        ISNULL(email,'No Email') AS 'remark'
from [tablename]

如果您只想檢索空電子郵件,請在查詢中添加如下所示的位置

 select  emp_id,
            f_name,
            email,
            ISNULL(email,'No Email') AS 'remark'
    from [tablename] where email is null

如果您使用的是MySQL,請將ISNULL替換為IFNULL

您可以在LINQ中輕松實現此目標:

var noemaillist = (from m in databaseContext.TableName
                  where m.email == String.Empty
                  select m).ToList();
if(noemaillist != null)
{
   foreach(var item in noemaillist)
   {
      item.remarks = "No email";
   }
}
databaseContext.SubmitChanges();

這將返回帶有空電子郵件ID的列表,並將相應的空電子郵件字段的備注列設置為“無電子郵件”。

foreach(DataRow dr in dt.Select("email is NULL or email=''"))
{
   dr["Remarks"]="No Email";
}
dt.AcceptChanges();

上面將根據需要設置“備注”列的值。

在ADO.NET中,具有IsDBNull(<column>)屬性,在LINQ中,您可以通過email != NULL檢查它email != NULL

  foreach (DataColumn col in dataTable.Columns)
            {
                foreach (DataRow row in dataTable.Rows)
                {
                  var x=row[col.ColumnName].ToString();
                  if (string.IsNullOrEmpty(x))
                  {
                      var colName = col.ColumnName.ToString();
                      row["remarks"] = string.Format("{0} is required", colName);
                  }

                }
            } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM