Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / MSSQL 2005 & загрузка данных по частям в datagridview / 25 сообщений из 32, страница 1 из 2
15.10.2008, 09:54
    #35594959
sever221mar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSSQL 2005 & загрузка данных по частям в datagridview
Есть источник с данными (1 000 000 строк). Надо ети данные отобразить пользователю через DataGridView. Полная загрузка в DataTable и биндинг к DataGridView через BindingSource - достаточно длительные операции (с таким количеством строк). Можно ли загружать и отображать данные частями, т.е. постепенно накапливая DataGridView в процессе загрузки (чтобы пользователь это видел).
...
Рейтинг: 0 / 0
15.10.2008, 12:03
    #35595339
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSSQL 2005 & загрузка данных по частям в datagridview
sever221marЕсть источник с данными (1 000 000 строк). Надо ети данные отобразить пользователю Зачем пользователю весь мильён?
...
Рейтинг: 0 / 0
15.10.2008, 12:22
    #35595424
Valentin Kotelnitski
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSSQL 2005 & загрузка данных по частям в datagridview
Сделай фильтр с условиями поиска и выводи пользователю только
отфильтрованные данные.
И на количество выводимых отфильтрованных rows тоже поставь ограничение,
скажем 1000 или 10000.
Миллион записей, как уже было замечено, твой пользователь все равно
физически в разумные сроки просмотреть не сможет.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
15.10.2008, 14:52
    #35595918
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSSQL 2005 & загрузка данных по частям в datagridview
Грексхайда на вас нету
...
Рейтинг: 0 / 0
16.10.2008, 09:28
    #35597335
sever221mar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSSQL 2005 & загрузка данных по частям в datagridview
Знали бы вы запросы современных пользователей... Эх...
На Лукойле дядька работает, дак вот ему надо, чтобы все данные выводились...
Мне то что делать???
...
Рейтинг: 0 / 0
16.10.2008, 09:57
    #35597396
Чилавек-Малекуло
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSSQL 2005 & загрузка данных по частям в datagridview
Выводите лижбы что, можете даже просто 8 одних и тех же скринов в рандом порядке менять. Всё равно в мульёне записёв не разобраццо никому.
...
Рейтинг: 0 / 0
16.10.2008, 10:07
    #35597434
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSSQL 2005 & загрузка данных по частям в datagridview
sever221marМне то что делать???
Не заниматься идиотизмом.

http://msdn.microsoft.com/en-us/library/tx1c9c2f(vs.71).aspx
...
Рейтинг: 0 / 0
16.10.2008, 10:21
    #35597491
Valentin Kotelnitski
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSSQL 2005 & загрузка данных по частям в datagridview
Опупеет твой дядька...

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
16.10.2008, 10:21
    #35597492
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSSQL 2005 & загрузка данных по частям в datagridview
sever221mar
Мне то что делать???
Использовать грид в Virtual Mode

http://msdn.microsoft.com/en-us/library/ms171624(VS.85).aspx
...
Рейтинг: 0 / 0
16.10.2008, 10:26
    #35597505
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSSQL 2005 & загрузка данных по частям в datagridview
Не надо бояться за дядьку. Нужен мильён - значит нужен.
...
Рейтинг: 0 / 0
16.10.2008, 10:38
    #35597552
Valentin Kotelnitski
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSSQL 2005 & загрузка данных по частям в datagridview
Все равно опупеет...

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
16.10.2008, 11:54
    #35597834
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSSQL 2005 & загрузка данных по частям в datagridview
sever221marЗнали бы вы запросы современных пользователей... Эх...
На Лукойле дядька работает, дак вот ему надо, чтобы все данные выводились...Это Вы для себя оправдание пытаетесь найти.
ИзопропилИспользовать грид в Virtual ModeЕщё через BindingSource.PositionChanged можно попробовать.
...
Рейтинг: 0 / 0
16.10.2008, 14:24
    #35598351
sever221mar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSSQL 2005 & загрузка данных по частям в datagridview
Алексей Кsever221marЗнали бы вы запросы современных пользователей... Эх...
На Лукойле дядька работает, дак вот ему надо, чтобы все данные выводились...Это Вы для себя оправдание пытаетесь найти.
ИзопропилИспользовать грид в Virtual ModeЕщё через BindingSource.PositionChanged можно попробовать.
Может Вам телефончик дать и Вы ему позвоните сами и скажете: "Не хрен заниматься идиотизмом..."
Слабо????
...
Рейтинг: 0 / 0
16.10.2008, 15:39
    #35598644
Cheerful Calf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSSQL 2005 & загрузка данных по частям в datagridview
sever221mar,

Пяшитя телефон. Я позвоню.
...
Рейтинг: 0 / 0
16.10.2008, 17:19
    #35598947
sever221mar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSSQL 2005 & загрузка данных по частям в datagridview
Cheerful Calfsever221mar,

Пяшитя телефон. Я позвоню.

Пожалуйста:
ведущий инженер службы главного метролога

ООО "ЛУКОЙЛ-Волгограднефтепереработка"

Шубочкин Дмитрий Владимирович

mailto:shubochkin@vnpz.lukoil.ru
Тел.: (8442) 96-42-75

Вот пожалуйста.
Потом отпишитесь.
...
Рейтинг: 0 / 0
16.10.2008, 17:20
    #35598955
sever221mar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSSQL 2005 & загрузка данных по частям в datagridview
С нетерпением жду...
...
Рейтинг: 0 / 0
16.10.2008, 17:46
    #35599053
Cheerful Calf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSSQL 2005 & загрузка данных по частям в datagridview
А вас как звать? ну, за кого заступаться то?
...
Рейтинг: 0 / 0
16.10.2008, 22:12
    #35599445
Compositum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSSQL 2005 & загрузка данных по частям в datagridview
sever221mar
Можно попробовать сделать так (в общих чертах, первое, что приходит в голову):
Создать параметрический запрос на выборку первых, скажем "TOP 1000 записей" и запустите его в цикле, который будет выполняться до тех пор, пока запрос не возвратит результат с набором записей меньше 1000 (значит это последняя выборка), только создайте отдельный поток и в нем запускайте этот цикл, добавляя новые выбранные строки в таблицу к уже имеющимся записям. За счет потока тормозов не должно быть заметно. можете в углу формы вывести анимированный гиф, показывающий, мол смотреть-то вы смотрите данные, да только они продолжают закачиваться. и как только все зальются - прячете гиф.
из каждого полученного набора записей, вам нужно будет запоминать ID последней, и отсчитывать следующие TOP 1000 уже от нее, иначе получите бесконечный цикл.
...
Рейтинг: 0 / 0
16.10.2008, 22:32
    #35599475
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSSQL 2005 & загрузка данных по частям в datagridview
CompositumСоздать параметрический запрос на выборку первых, скажем "TOP 1000 записей" и запустите его в цикле, который будет выполняться до тех пор, пока запрос не возвратит результат с набором записей меньше 1000 (значит это последняя выборка)
А если у нас 2000 записей, то крутимся в бескончном цикле? :)
CompositumID последней
Что такое ID последней? Может, Вы говорите про отсортированную выборку? :)
Compositumи отсчитывать следующие TOP 1000 уже от нее, иначе получите бесконечный цикл.
Уже получили :)

P.S. Классика жанра - отгадайте, как называется картина Решетникова? :)
...
Рейтинг: 0 / 0
16.10.2008, 22:41
    #35599492
Compositum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSSQL 2005 & загрузка данных по частям в datagridview
МСУ
А если у нас 2000 записей, то крутимся в бескончном цикле? :)

а ежели 2000 записей, то третья выборка вернет 0 записей, на чем цикл и закончится. так что
Вам самому

...
Рейтинг: 0 / 0
16.10.2008, 22:48
    #35599503
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSSQL 2005 & загрузка данных по частям в datagridview
Compositumа ежели 2000 записей, то третья выборка вернет 0 записей, на чем цикл и закончится.
А, я про NULL подумал :)

Нам обоим -

...
Рейтинг: 0 / 0
16.10.2008, 22:49
    #35599506
Compositum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSSQL 2005 & загрузка данных по частям в datagridview
МСУ
А, я про NULL подумал :)
Нам обоим - 2.

А мне-то за что? я же не думал про NULL :)
...
Рейтинг: 0 / 0
16.10.2008, 22:52
    #35599508
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSSQL 2005 & загрузка данных по частям в datagridview
CompositumМСУ
А, я про NULL подумал :)
Нам обоим - 2.

А мне-то за что? я же не думал про NULL :)

Как всегда, Композитум, как всегда. За бестолковейшую идею
...
Рейтинг: 0 / 0
16.10.2008, 22:53
    #35599511
Compositum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSSQL 2005 & загрузка данных по частям в datagridview
МСУ

Согласен - вариант плохой, т.к. сортировка будет производиться по ID, в то время как заказчик наверняка захочет по алфавиту. Т.о. он все равно не сможет полноценно просматривать записи, т.к. пока он просмотрит в одном месте - добавятся новые записи ,он нажмет сортировку по полю и придется заново смотреть все строки, т.к. сортировка все перемешает.... очень плохой вариант на самом деле...
...
Рейтинг: 0 / 0
16.10.2008, 22:58
    #35599517
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSSQL 2005 & загрузка данных по частям в datagridview
Композитум, прокурите этот запрос и не забудбьте сказать чудесному МСУ спасибо

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
create procedure GetCustomersByPage
    @PageSize int
,   @PageNumber int 
AS 

	set nocount on
	declare @RowStart int, @RowEnd int 

	if @PageNumber >  0  begin 

		set @PageNumber = @PageNumber - 1  

		set @RowStart = @PageSize * @PageNumber +  1 
		set @RowEnd = @RowStart + @PageSize -  1 

		;with doc as 
			 ( select doch_id,
			   row_number() over (order by inv_num) as RowNumber 
			   from dbo.doch ) 

		select * 
		from doc 
		Where RowNumber >= @RowStart and RowNumber <= @RowEnd 
	end
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / MSSQL 2005 & загрузка данных по частям в datagridview / 25 сообщений из 32, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]