Подтвердить что ты не робот

Как проверить, пуст ли DataSet?

Я изменяю код другого пользователя, где выполняется запрос, используя следующее:

DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(sqlString, sqlConn);
da.Fill(ds);

Как я могу определить, пуст ли DataSet (т.е. результаты не были возвращены)?

4b9b3361

Ответ 1

Если я правильно понимаю, это должно сработать для вас

if (ds.Tables[0].Rows.Count == 0)
{
    //
}

Ответ 2

Вам не нужно проверять набор данных.

Метод Fill() возвращает количество добавленных строк.

См. DbDataAdapter.Fill Method (DataSet)

Ответ 3

Это неверный ответ, поскольку он дает следующую ошибку

Не удается найти таблицу 0.

Используйте вместо этого следующий оператор

if (ds.Tables.Count == 0)
{
     //DataSet is empty
}

Ответ 4

Вы должны пропустить все таблицы и проверить, если 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);
}

Ответ 5

Мы можем проверить всего тремя способами.

  1. if(ds != null)
  2. if(ds.Tables.Count > 0 )
  3. if(ds.Tables[0].Rows.Count > 0)

Ответ 6

Этот код покажет ошибку, как Table[0] can not be found! потому что в позиции 0 не будет никакой таблицы.

if (ds.Tables[0].Rows.Count == 0)
{
    //
}

Ответ 7

Проверить набор данных пуст или нет. Вы должны проверить количество нулей и таблиц.

DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(sqlString, sqlConn);
da.Fill(ds);
if(ds != null && ds.Tables.Count > 0)
{
 // your code
}

Ответ 8

 MySqlDataAdapter adap = new MySqlDataAdapter(cmd);
 DataSet ds = new DataSet();
 adap.Fill(ds);
 if (ds.Tables[0].Rows.Count == 0)
 {
      MessageBox.Show("No result found");
 }

запрос получит данные в наборе данных, а затем мы проверим набор данных, который является пустым или в нем есть некоторые данные. за это мы    ds.tables [0].Rows.Count == o это будет подсчитывать количество строк, находящихся в наборе данных. Если указанное выше условие истинно, тогда набор данных, т.е. ds, пуст.

Ответ 9

Не забудьте указать имя таблицы   da.Fill(DS, "имя_таблица" );

Таким образом, вы возвращаете данные с использованием имени таблицы вместо 0

if (ds.Tables["tablename"].Rows.Count == 0)
 {
  MessageBox.Show("No result found");
 }

Ответ 10

При возврате результатов запроса SQL я обнаруживаю, что существуют таблицы [0], но у него есть нулевые строки. Поэтому в моей ситуации это сработало:

if (ds.Tables [0].Rows.Count == 0)//пусто

Это не сработало:

if (ds.Tables.Count == 0)

Ответ 11

Fill команда всегда возвращает количество записей, вставленных в набор данных.

DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(sqlString, sqlConn);
var count = da.Fill(ds);
if(count > 0)
{
   Console.Write("It is not Empty");
}

Ответ 12

Это должно работать

DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(sqlString, sqlConn);
da.Fill(ds);

if(ds.Tables.Count > 0)
{
  // enter code here
}

Ответ 13

If (ds != null)

Делайте работу за вас!