2013-10-09 1 views
-1

У меня есть функция, которая возвращает одну строку данных из таблицы данных на основе определенного значения в определенном столбце. что, если значение не создает строку, как я могу определить, используя пустую строку?Определить, если строки, если они возвращены

то есть, если я был запрос, возвращающей таблицу, в которой 0 строк, я мог бы сказать

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

, но я не могу сделать

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

ив пытался DBNull и row.haserrors, но тот не то, что я ищу. Я хочу проверить строку, потому что мне нужно использовать ее, если она имеет значения

Я передаю данные, относящиеся к функции. затем прокрутите, чтобы найти конкретное значение в определенном поле. если я найду его, я назначу эту строку и верну ее. в противном случае он просто возвращает строку

так что я получил Dim myRow, как DataRow

Loop если значение найдено, MyRow = thisRow Следующая

возвращение myRow

(жаль, что это Vb)

+0

Но как вы * назначение * 'row' здесь? –

+0

Как вы получаете данные? Если вы используете DataReader, определение того, есть ли возвращенные строки, довольно просто. –

+0

Что случилось с вашим первым состоянием? 'if (table.Rows.Count == 0)'? – Khan

ответ

0

Проверьте, является ли DataRownull, если нет, то пропустите через 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

, когда я пытаюсь проверить, является ли строка нулевой, intellisense не нравится. только позволяет мне сравнивать его с nullable, даже тогда он дает ошибку – dwarf

+0

Является ли 'row'' DataRow' или что-то еще? –

+0

Используя аналогичную логику, как @Karl Anderson, вы можете вернуть индекс строки найденной строки. Если совпадение не найдено, верните -1. –

 Смежные вопросы

  • Нет связанных вопросов^_^