确定是否返回Rows

时间:2013-10-09 18:55:03

标签: c# sql vb.net datatable datarow

我有一个函数,它根据某列中的某个值从数据表中返回一个数据行。如果值不产生一行怎么办,我如何通过使用空行来确定?

即,如果我有一个返回一个有0行的表的查询,我可以说

         if(table.rows.count == 0)  
          { 
            do stuff
          }

但我做不到

        if(row.columns.count)
         {
           do stuff
         }

我尝试过dbnull和row.haserrors,但那不是我想要的。我想测试行,因为我需要使用它,如果它有值

我将一个数据表传递给该函数。然后循环查找特定字段的特定值。如果我找到它,我分配该行并返回它。否则它只返回一行

所以我把Dim myRow作为DataRow

循环 如果找到值,MyRow = thisRow 下一步

返回myRow

(对不起,这是vb)

1 个答案:

答案 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