faisal23 Ответов: 1

ДС вопросом, когда собираюсь привязать вид сетки


Я собираюсь связать gridview в c#
когда дело доходит до этого
if (ds.Tables.Count > 0)
                {
                    if (ds != null && ds.Tables.Count > 0)
                    ///if (ds.Tables[0].Rows.Count > 0)
                    {
                        gdvNotice.DataSource = ds.Tables[0];
                        Session["Get_Notice"] = ds.Tables[0];
                        gdvNotice.DataBind();

                    }
                    else
                    {
                        gdvNotice.DataSource = null;
                        gdvNotice.DataBind();
                    }
                }


Здесь возвращается 1 и
if (ds.Tables.Count > 0)

во вторых если его ложь и выйти из блока
if (ds.Tables[0].Rows.Count > 0)


Что я уже пробовал:

если (ДС.Таблицы.Граф > 0)
{

если (ДС.Таблицы[0].Строк.Граф > 0)
{
гдвнотице.DataSource = ds. Tables[0];
Session ["Get_Notice"] = ds. Tables[0];
гдвнотице.Привязку();

}
ещё
{
гдвнотице.Источник данных = null;
гдвнотице.Привязку();
}
}

ZurdoDev

Если строк нет, то либо ваш sql не работает,либо ваш sql возвращает строки now. Посмотрите, что происходит в sql.

faisal23

привет,
в первом случае если он возвращает 1 и во втором если условие case ложно и выбрасывает блок

ZurdoDev

Я не понимаю, о чем вы спрашиваете.

faisal23

плз, см. мой код в первом случае блок означает
если (ДС.Таблицы.Граф > 0)
он возвращает true означает 1
во вторых если блок означает
если (ДС.Таблицы[0].Строк.Граф > 0)
оно становится ложным и выбрасывается

ZurdoDev

Я уже объяснял. У вас нет никаких строк.

faisal23

6 записей в таблице.
если нет записей, то это ложь в первом условии означает
если (ДС.Таблицы.Граф > 0)
здесь он возвращает 0 но это rtrn 1

ZurdoDev

ДС.Стол.Функция count подсчитывает количество таблиц в dataset. Итак, если он возвращает 1, то у вас есть 1 Таблица.

Чтобы добраться до этого стола, вы используете ds.Таблицы[0]. Индекс 0 - это первая таблица.

Таким образом, ds.Tables[0]Rows = 0 означает, что в вашей таблице нет никаких строк. Итак, как я уже сказал в самый первый раз, когда я ответил, проверьте свой sql, потому что ваш DataTable в C# не имеет никаких строк/записей.

faisal23

теперь понятно, спасибо

1 Ответов

Рейтинг:
8

ZurdoDev

Как обсуждалось в комментариях, в вашей таблице sql могут быть записи, но они не попадают в C#, поэтому убедитесь, что вы правильно вызываете свой sql и передаете все правильные параметры. Вы можете использовать SQL Profiler для отслеживания и просмотра того, что именно отправляется в SQl.

Кроме того, при привязке вашего gridview вы, скорее всего, не захотите проверять наличие строк. Просто привяжите его к DataTable и готово. Если строк нет, ваша сетка будет пустой. Если есть, то будут и ряды. Не беспокойтесь о проверке количества строк, чтобы определить, как привязать данные.


faisal23

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

ZurdoDev

Просто удалите оператор if, где вы проверяете количество строк.