Лучший подход к проверке набора данных имеет записи - PullRequest
1 голос
/ 07 февраля 2012

Мне хотелось бы узнать, как лучше всего проверить, есть ли в наборе данных записи или нет. Я использовал приведенный ниже код, чтобы проверить, есть ли в наборе данных некоторые записи или нет. Но я чувствую, что есть некоторый лучший / лучший подход для достижения этой цели.

Dataset tableData = New Dataset();
if (_tableData.Tables.Count > 0 && _tableData.Tables[0].Rows.Count > 0)
{ 
}

Пожалуйста, поделитесь некоторыми знаниями, если я чувствую себя правильно.

Спасибо

Ответы [ 5 ]

6 голосов
/ 07 февраля 2012

Это вернет true, если в любой из таблиц есть строки. Он вернет false, если нет таблиц или строк.

DataSet tableData; // ... instantiate DataSet
bool hasRows = tableData.Tables.Cast<DataTable>()
                               .Any(table => table.Rows.Count != 0);
2 голосов
/ 07 февраля 2012

Если в вашем DataSet несколько таблиц, тогда ваша логика не будет работать для некоторых сценариев. Этот метод является более полным:

bool HasRecords(DataSet dataSet)
{
    foreach (DataTable dt in dataSet.Tables) if (dt.Rows.Count > 0) return true;
    return false;
}
0 голосов
/ 07 февраля 2012

http://msdn.microsoft.com/en-us/library/system.data.datatablereader.hasrows.aspx

Попробуйте проверить эту ссылку, я думаю, это то, что вы пытаетесь сделать.

0 голосов
/ 07 февраля 2012

Ну, хорошо, что эта работа не сработает, если у вас есть несколько DataTable в наборе данных.

Не могу вспомнить случай, когда мне нужно было сделать это, чтобы быть честным.Если бы у меня была аналогичная потребность, я бы искал таблицу в DataSet, исходя из предположения, что все там были по какой-то функциональной причине.

Так что я мог бы просто проверить, пуста ли таблица клиентов.с выбором счетчика, потому что если нет смысла проверять что-либо еще.

0 голосов
/ 07 февраля 2012

Вы можете проверить с помощью HasChanges(), что будет верно только при успешной вставке данных, включая новые, удаленные или измененные строки

        DataSet dSet = new DataSet();
        if (dSet.HasChanges())
        {

        }

Вы также можете получить их через DataSet.HasChanges(DataRowState), чтобы точно знать, что произошло, была ли добавлена, изменена или удалена новая строка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...