Я изменяю чужой код, где запрос выполняется с помощью следующего:
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(sqlString, sqlConn);
da.Fill(ds);
Как я могу сказать, пуст ли DataSet (т.е. никакие результаты не были возвращены)?
Если я правильно понимаю, это должно сработать для вас
if (ds.Tables[0].Rows.Count == 0)
{
//
}
Вам не нужно тестировать набор данных.
Метод Fill()
возвращает количество добавленных строк.
Вы должны перебрать все таблицы и проверить, равно ли table.Rows.Count 0
bool IsEmpty(DataSet dataSet)
{
foreach(DataTable table in dataSet.Tables)
if (table.Rows.Count != 0) return false;
return true;
}
Обновление: поскольку DataTable может содержать удаленные строки RowState = Deleted
, в зависимости от то, что вы хотите получить, может быть хорошей идеей вместо этого проверить DefaultView
(который не содержит удаленных строк).
bool IsEmpty(DataSet dataSet)
{
return !dataSet.Tables.Cast<DataTable>().Any(x => x.DefaultView.Count > 0);
}