我有一个函数,它根据某列中的某个值从数据表中返回一个数据行。如果值不产生一行怎么办,我如何通过使用空行来确定?
即,如果我有一个返回一个有0行的表的查询,我可以说
if(table.rows.count == 0)
{
do stuff
}
但我做不到
if(row.columns.count)
{
do stuff
}
我尝试过dbnull和row.haserrors,但那不是我想要的。我想测试行,因为我需要使用它,如果它有值
我将一个数据表传递给该函数。然后循环查找特定字段的特定值。如果我找到它,我分配该行并返回它。否则它只返回一行
所以我把Dim myRow作为DataRow
循环 如果找到值,MyRow = thisRow 下一步
返回myRow
(对不起,这是vb)
答案 0 :(得分:0)
检查DataRow
是否为null
,如果没有,则循环浏览ItemArray
并查看是否有任何列包含数据,如下所示:
// Assume it is empty
bool isRowEmpty = true;
if (row != null)
{
foreach(var columnValue in row.ItemArray)
{
if (columnValue != null)
{
isRowEmpty = false;
break;
}
}
}
这是VB.NET版本:
' Assume it is empty
Dim isRowEmpty As Boolean = True
If row IsNot Nothing Then
For Each columnValue As var In row.ItemArray
If columnValue IsNot Nothing Then
isRowEmpty = False
Exit For
End If
Next
End If