如何在C#中检查数据表中的列值是否为null?
所以我要做的是,循环遍历datatable的列,从中获取值 例如,这是我的数据表如何在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 在这个数据表中,您可以看到
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);
}
}
}