2013-10-09 151 views
-1

我有一个函数根据特定列中的某个值从数据表中返回单个数据行。如果该值不产生一行,如何确定通过使用空行?确定是否返回行

也就是说,如果我有返回的表中有0行的查询,我可以说

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

,但我不能这样做

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

香港专业教育学院试图为DBNull和row.haserrors但是那不是我在找什么。我想测试行,因为我需要使用它,如果它确实有值

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

,所以我就昏暗myRow作为DataRow的

循环 如果价值发现,MyRow = thisRow 接下来

回报myRow

(抱歉,这是VB)

+0

但你是如何分配* *'这里row'? –

+0

你是如何得到这些数据的?如果您使用DataReader,确定是否有返回的行很容易。 –

+0

你的第一个病情有什么问题? 'if(table.Rows.Count == 0)'? – Khan

回答

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 
+0

。只允许我比较它为空,即使那么它会给出一个错误 – dwarf

+0

行是一个DataRow或其他东西吗? –

+0

使用与@Karl Anderson类似的逻辑,您可以返回找到的行的行索引。如果找不到匹配项,则返回-1。 –

相关问题