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

如何在C#中检查数据表中的列值是否为null?,c#,datatable,C#,Datatable,所以我要做的是,循环遍历datatable的列,从中获取值 例如,这是我的数据表 emp_id f_name email remarks 1 Jim Jim@yahoo.com 2 Apple apple@gmail.com 3 Peter 4 Amy amy@gmail.com 在这个数据表中,您可以看到

所以我要做的是,循环遍历datatable的列,从中获取值

例如,这是我的数据表

emp_id      f_name         email            remarks
1            Jim          Jim@yahoo.com
2            Apple        apple@gmail.com  
3            Peter
4            Amy          amy@gmail.com
在这个数据表中,您可以看到Peter的电子邮件丢失了。我想检索备注“无电子邮件”中的记录集a值


我如何才能做到这一点?

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

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

尝试此查询,因此您不必检索和修改数据表:

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

尝试此查询,这样您就不必检索和修改数据表:

select  emp_id,
        f_name,
        email,
        ISNULL(email,'No Email') AS 'remark'
from [tablename]
foreach(DataRow dr in dt.Select("email is NULL or email=''"))
{
   dr["Remarks"]="No Email";
}
dt.AcceptChanges();
  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);
                  }

                }
            } 
如果只想检索空电子邮件,请在查询中添加如下位置

 select  emp_id,
            f_name,
            email,
            ISNULL(email,'No Email') AS 'remark'
    from [tablename] where email is null
如果您使用的是MySQL,请将
ISNULL
替换为
IFNULL

foreach(DataRow dr in dt.Select("email is NULL or email=''"))
{
   dr["Remarks"]="No Email";
}
dt.AcceptChanges();
  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);
                  }

                }
            } 
以上将根据需要设置“备注”列的值



上面将根据需要设置“备注”列的值。

在ADO.NET中,有
IsDBNull()
的属性,在LINQ中,您可以通过
电子邮件!=NULL

在ADO.NET中,有
IsDBNull()的属性
,在LINQ中,您可以通过
电子邮件检查它!=空

编辑问题并添加获取数据的现有代码。请告诉我们一些详细信息。如何检索数据?我想您应该使用DbNull进行检查。但是请让我们了解更多关于您的代码的信息。例如,如果您使用Linq,您也可以这样做:MyData.Select(x=>newmyrow{x.em_id,x.f_name,email=string.IsNullOrEmpty(x.email)?“无电子邮件”:x.email});编辑问题并添加获取数据的现有代码。请告诉我们一些细节。如何检索数据?我想您应该使用DbNull进行检查。但是请让我们了解更多关于您的代码的信息。例如,如果您使用Linq,您也可以这样做:MyData.Select(x=>newmyrow{x.em_id,x.f_name,email=string.IsNullOrEmpty(x.email)?“无电子邮件”:x.email});这个怎么样。“我想在备注“无电子邮件”中检索此记录集a值。”“是的,@RahulNikate指出,您的解决方案只会过滤掉空电子邮件地址,而不会更新”“备注”“oops…”。。。我错过了。。。谢谢你的提醒。。拉希尔和富士如何?noemaillist只包含电子邮件列中有空字符串的项目。这是怎么回事。“我想在备注“无电子邮件”中检索此记录集a值。”“是的,@RahulNikate指出,您的解决方案只会过滤掉空电子邮件地址,而不会更新”“备注”“oops…”。。。我错过了。。。谢谢你的提醒。。拉希尔和富士如何?noemaillist只包含电子邮件列中有空字符串的项目。修改代码以设置备注列的值。请检查,谢谢您的快速回复。我只是想知道如果我想检查它是空的还是空的呢?dt.Select()基本上是一个SQL查询吗?@DragonBorn请在您的问题中查看我的评论。选择是一个LinqCommand@MahdiFarhani谢谢我错过了它修改了我的答案,包括空电子邮件行。请选中修改后的代码以设置备注栏的值。请检查,谢谢您的快速回复。我只是想知道如果我想检查它是空的还是空的呢?dt.Select()基本上是一个SQL查询吗?@DragonBorn请在您的问题中查看我的评论。选择是一个LinqCommand@MahdiFarhani谢谢我错过了它修改了我的答案,包括空电子邮件行。请查收
foreach(DataRow dr in dt.Select("email is NULL or email=''"))
{
   dr["Remarks"]="No Email";
}
dt.AcceptChanges();
  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);
                  }

                }
            }