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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Нам обоим -

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

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

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

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

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

Код: 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
MSSQL 2005 & загрузка данных по частям в datagridview
    #35599523
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сиба, завтра разберусь. сегодня уже устал.
...
Рейтинг: 0 / 0
MSSQL 2005 & загрузка данных по частям в datagridview
    #35599571
Фотография Cheerful Calf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну такое придумать, конечно устал
...
Рейтинг: 0 / 0
MSSQL 2005 & загрузка данных по частям в datagridview
    #35599849
Фотография Valentin Kotelnitski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С миллионом записей страницы дядька листать задолбается... (слово цензурное)

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
MSSQL 2005 & загрузка данных по частям в datagridview
    #35599974
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin Kotelnitski
С миллионом записей страницы дядька листать задолбается... (слово цензурное)

Posted via ActualForum NNTP Server 1.4
но "дядька"-то этого не понимает видимо. он просто сидит и хочет ... ;)
...
Рейтинг: 0 / 0
MSSQL 2005 & загрузка данных по частям в datagridview
    #35599997
sever221mar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо. Проблема решилась.
Вот таким макаром:
перевожу DataGridView в виртуальный режим.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
dataGridView.VirtualMode = true;
dataGridView.CellValueNeeded += new DataGridViewCellValueEventHandler(OnCellValueNeeded);

 void OnCellValueNeeded(object sender, DataGridViewCellValueEventArgs e)
        {
            int count = (sender as DataGridView).RowCount;
            if (e.RowIndex >= count) return;
            if (e.RowIndex < indexOffset || e.RowIndex >= indexOffset + dataTable.Rows.Count)
            {
                dataTable.Clear();
                indexOffset = Math.Max( 0 , e.RowIndex -  300 );
                
                string query = string.Format("SELECT * FROM (SELECT ROW_NUMBER() OVER (ORDER BY id) AS num, * FROM {0} ) t WHERE num BETWEEN {1} AND {2} ORDER BY num", "Journal", indexOffset, Math.Min(count, e.RowIndex +  300 ));
                sqlCommand = new SqlCommand(query, sqlConnection);
                dataTable.BeginLoadData();
                var sqlDataAdapter = new SqlDataAdapter(sqlCommand);
                sqlDataAdapter.Fill(dataTable);
                dataTable.EndLoadData();
            }
            object val = dataTable.Rows[e.RowIndex - indexOffset][e.ColumnIndex];
            e.Value = val;
        }
...
Рейтинг: 0 / 0
MSSQL 2005 & загрузка данных по частям в datagridview
    #35600245
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sever221marМожет Вам телефончик дать и Вы ему позвоните сами и скажете: "Не хрен заниматься идиотизмом..."
Слабо????И сколько мне за это заплатят?
...
Рейтинг: 0 / 0
MSSQL 2005 & загрузка данных по частям в datagridview
    #35600418
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вообще, пусть он сюда напишет. Ему тут наверняка ответят...
...
Рейтинг: 0 / 0
32 сообщений из 32, показаны все 2 страниц
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / MSSQL 2005 & загрузка данных по частям в datagridview
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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