如何检查C#中数据表中的列值是否为空?

时间:2016-04-27 04:11:44

标签: c# datatable

所以我想要做的就是遍历数据表的列以获取它的价值。

例如,这是我的数据表

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

在这个数据表中,您可以看到彼得的电子邮件丢失了。我想在备注"没有电子邮件"中检索此记录集的值。

我该怎么做?

5 个答案:

答案 0 :(得分:2)

尝试此查询,因此您无需检索和修改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

答案 1 :(得分:1)

您可以在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的列表,并将备注列设置为“无电子邮件”以显示相应的空电子邮件字段。

答案 2 :(得分:1)

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

以上将根据需要设置“备注”栏的值。

答案 3 :(得分:0)

在ADO.NET中,有IsDBNull(<column>)的属性,在LINQ中,您可以通过email != NULL

进行检查

答案 4 :(得分:0)

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

                }
            }