所以我想要做的就是遍历数据表的列以获取它的价值。
例如,这是我的数据表
emp_id f_name email remarks
1 Jim Jim@yahoo.com
2 Apple apple@gmail.com
3 Peter
4 Amy amy@gmail.com
在这个数据表中,您可以看到彼得的电子邮件丢失了。我想在备注"没有电子邮件"中检索此记录集的值。
我该怎么做?
答案 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);
}
}
}