|
|
|
| Здравствуйте. Вот такой вопрос у меня возник.
Я вытаскиваю строки из БД, определённым запросом и записываю их в TableAdapter следующим образом.
DataSet XMLTransSearchByRegionDataSet = new DataSet("SearchByRegion");
SQLiteDataAdapter XMLSearchByRegionAdapter = new SQLiteDataAdapter(
"SELECT * FROM corp_inform WHERE region_loc='" + SplitID[2] + "'", ConnectTo);
XMLSearchByRegionAdapter.Fill(XMLTransSearchByRegionDataSet, "corp_inform");
|
Да квот, вытаскивается естественно ВСЁ. это хорошо, но нужно сделать так, чтобы всё, что вытащилось, было распределено по страницам.
Т.е. у меня есть WebBrowser на форме, туда, после XSLT преобразований выводятся данные в форматированном виде, те данные, которые были выбраны из базы, при помощи вышеуказанной конструкции.
Мне нужно, чтобы выбранные данные заносились в массив и в нижней части окна показывалась панель со ссылками на другие страницы.
P.S. Данные, которые выбираюстя из бащы, заносятся в TableAdapter, а затем переносятся в XML документ, далее XML жокумент преобразуется в HTML и выводится в webBrowser - контрол. На XML, XSLT или HTML постраничную навигацию не сделать, остаётся только один вариант, "порциями" выдавать информацию в XSLT - транслятор.
Спасибо. | |
|
|
|
|
|
|
|
для: EvgenLog
(18.03.2007 в 15:11)
| | Да суть такая же как и в PHP - определяете количество записей в базе даных - вычисляете количество страниц. И в зависимости от номера вычисляете числа для конструкции LIMIT SELECT-запроса. | |
|
|
|
|
|
|
|
для: cheops
(18.03.2007 в 22:51)
| | Вот в том-то и проблема. Я не знаю как узнать какое количество записей выбрано из базы... Не подскажете? | |
|
|
|
|
|
|
|
для: EvgenLog
(18.03.2007 в 23:58)
| | Это MS SQL? | |
|
|
|
|
|
|
|
для: cheops
(19.03.2007 в 01:28)
| | Ну... Почти. Это движок SQLite. Запросы используются те же самые. | |
|
|
|
|
|
|
|
для: EvgenLog
(19.03.2007 в 07:56)
| | А SQLite поддерживает функцию COUNT() и вообще какие-нибудь функции? | |
|
|
|
|
|
|
|
для: cheops
(19.03.2007 в 11:49)
| | Поддерживает. А где её использовать? И ещё, допусим, этот вариант с функцией COUNT(), работоспособен, но всё-таки, насколько я понимаю, придётся делать ещё один запрос в базу, чтобы посчитать количество строк с заданным критерием. Можно-ли обойтись без этого? Например, заглянуть в DataTable, для которого был сделан запрос. Я пытался, но что-то ничего там про количество строк не нашёл. Жду помощи, спасибо. | |
|
|
|
|
|
|
|
для: EvgenLog
(19.03.2007 в 12:07)
| | Хм... лучше оформить отдельный запрос, скорее всего DataTable не хранит всю таблицу в памяти, а выступает как курсор. Даже если этот класс поддерживает метод, возвращающий количество записей в таблице, он всё равно будет осуществлять запрос. Поэтому лучше пока реализовать собственный запрос
"SELECT COUNT(*) FROM corp_inform WHERE region_loc='" + SplitID[2] + "'" |
| |
|
|
|
|
|
|
|
для: cheops
(19.03.2007 в 13:02)
| | А этот запрос возвращает только количество записей или информацию тоже? Видимо только количество записей. Возможно-ли как-тообъединить эти два запроса, чтобы всё делалось за раз? Или ни как? И вообще. Вот запрос БЕЗ COUNT(*), записывает данные в DataSet, а они потом из него выводятся в XML и транслируются в HTML. А как можно воспользовать данными, которые будут получены из запроса С COUNT(*)? Т.е. можно-ли это куда-нибудь в переменную записать? А пото использовать эту переменную? | |
|
|
|
|
|
|
|
для: EvgenLog
(19.03.2007 в 19:39)
| | Нет запрос к функции COUNT(*) возращает лишь одно число, получить данные совместно с этой агрегатной функцией нельзя, соответственно потребляет меньше памяти, а зачастую и ресурсов, чем при обычном SELECT-запросе. Можно ли из DataSet выжать количество строк - не знаю. | |
|
|
|
|
|
|
|
для: cheops
(19.03.2007 в 23:05)
| | Ну хорошо, а как же всётаки записать количество строк, полученных запросом COUNT(*), в переменную? | |
|
|
|