Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
5 / 4 / 1
Регистрация: 10.05.2015
Сообщений: 93

Подгрузка данных в DataGridView

29.10.2018, 16:53. Показов 3910. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер.
Суть проблемы, необходимо через DataGridView просматривать большое количество данных, более 150000. При загрузке данных особенно по сетке большая задержка. Есть описание метода подгрузки только тех данных которые нужны. Но по ряду причин он не подходит для использования с Access.
Есть перегрузка
C#
1
OleDbDataAdapter.Fill(dataSet, startRecord, maxRecords, srcTable);
Судя по всему это может быть использовано для подгрузки данных, но как его использовать. Если кто знает отзовитесь.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.10.2018, 16:53
Ответы с готовыми решениями:

Подгрузка данных из базы mysql с последующей генерацией html и подстановкой извлеченных данных
на сайте есть форма подачи заявки. после подачи , на главной странице должно отображаться фото и свойства заявленного. данные из формы...

Подгрузка данных из бд
Добрый день. Мне нужно, чтобы при нажатии на кнопку подгружалось еще 10 строк в таблицу Бьюсь третий день, не выходит. <?php ...

Подгрузка данных
Есть файл .php, в нём блок poems-list, в который должны грузиться данные из таблицы. <div class="poems-list" > ...

9
5 / 4 / 1
Регистрация: 10.05.2015
Сообщений: 93
30.10.2018, 09:17  [ТС]
Приспособил этот метод под работу с Access, но все равно довольно сильно тормозит. И похоже код не доработан, случается много исключений.
0
Эксперт .NET
 Аватар для Usaga
14130 / 9350 / 1350
Регистрация: 21.01.2016
Сообщений: 35,150
30.10.2018, 09:26
galabut, когда данных много, то используют или виртуальный режим (подгрузка данных по мере пролистывания списка), либо пагинацию (pagination - постраничный вывод).

Что вам мешает использовать один из этих подходов в работе с Access?
1
5 / 4 / 1
Регистрация: 10.05.2015
Сообщений: 93
30.10.2018, 10:20  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
виртуальный режим (подгрузка данных по мере пролистывания списка), либо пагинацию (pagination - постраничный вывод).
Спасибо. Если можно по подробнее как это использовать.
0
Эксперт .NET
 Аватар для Usaga
14130 / 9350 / 1350
Регистрация: 21.01.2016
Сообщений: 35,150
30.10.2018, 10:33
Лучший ответ Сообщение было отмечено XIST как решение

Решение

galabut, можно было бы и погуглить, благо, что волшебные слова я назвал.

Пример пагинации. Данные подгружаются порциями по PageSize при нажатии кнопок "Туда"-"Сюда".
Пример виртуализации. Данные подргужаются порциями при пролистывании списка.
2
5 / 4 / 1
Регистрация: 10.05.2015
Сообщений: 93
30.10.2018, 11:13  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
можно было бы и погуглить
В том то и дело что уже два дня гуглю. Спасибо за примеры.
0
Эксперт .NET
 Аватар для Usaga
14130 / 9350 / 1350
Регистрация: 21.01.2016
Сообщений: 35,150
30.10.2018, 12:08
galabut, да этих примеров море. Смысл каждого подхода я описал чуть выше. Всё в одно приложение укладывается. Вы и без примеров можете один из подходов попробовать воспроизвести, идея-то достаточно простая.
1
5 / 4 / 1
Регистрация: 10.05.2015
Сообщений: 93
30.10.2018, 14:57  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Пример виртуализации. Данные подргужаются порциями при пролистывании списка.
Данный пример это просто ручная привязка dataGridView к источнику данных. По большому счету весь этот пример можно заменить всего одной строкой:
C#
1
dataGridView1.DataSource = dataTable;
Цитата Сообщение от Usaga Посмотреть сообщение
Пример пагинации. Данные подгружаются порциями по PageSize при нажатии кнопок "Туда"-"Сюда".
Разделять данные на страницы. Это конечно ускорит работу, но пользователю привыкшему работать с Access это будет не привычно.
Цитата Сообщение от Usaga Посмотреть сообщение
Пример виртуализации.
По этой ссылке есть действительно пример подгрузки данных. Называется Just-In-Time Data Loading, но я о нем говорил в самом первом посте. Что пример не отлажен, и не очень подходит для Access. Хотя я его заставил работать, но работает он так себе, быстрее чем было, но все же недостаточно.
0
Эксперт .NET
 Аватар для Usaga
14130 / 9350 / 1350
Регистрация: 21.01.2016
Сообщений: 35,150
30.10.2018, 16:26
Цитата Сообщение от galabut Посмотреть сообщение
Данный пример это просто ручная привязка dataGridView к источнику данных. По большому счету весь этот пример можно заменить всего одной строкой:
Вообще, пример был не про это, а про включение виртуализации и подписку на определённые событие возникающие, когда у контрола заканчиваются данные для отображения.

Цитата Сообщение от galabut Посмотреть сообщение
Разделять данные на страницы. Это конечно ускорит работу, но пользователю привыкшему работать с Access это будет не привычно.
Тогда виртуализация.

Цитата Сообщение от galabut Посмотреть сообщение
Что пример не отлажен, и не очень подходит для Access.
Примеру плевать на источник данных: будь то Access или ещё что. Если работает плохо, то фигово реализовали. Если уверены, что тормоза в самом DataGridView, то поищите альтернативы.
0
5 / 4 / 1
Регистрация: 10.05.2015
Сообщений: 93
30.10.2018, 17:30  [ТС]
Для улучшения прокрутки сетки хорошо помогает включение DoubleBuffered
C#
1
2
3
4
5
6
7
// Double buffering can make DGV slow in remote desktop
if (!System.Windows.Forms.SystemInformation.TerminalServerSession)
{
    Type dgvType = dataGridView1.GetType();
    PropertyInfo pi = dgvType.GetProperty("DoubleBuffered", BindingFlags.Instance | BindingFlags.NonPublic);
    pi.SetValue(dataGridView1, true, null);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.10.2018, 17:30
Помогаю со студенческими работами здесь

Подгрузка данных из БД
Доброе утро. Вопрос для интереса. Каким методом подгрузки используете,если надо по текущей строке взять верхние 250строк и нижние 250строк...

Подгрузка данных
Здравствуйте) у меня появился вопрос, как можно сделать и через что было бы лучше сделать подгрузку данных из БД? Например, ввожу фио и...

Подгрузка данных
Здравствуйте. Подскажите самый просто вариант для подгрузки данных, в моем случае 3х новостей. Вот вывожу новости: <?php $resultat =...

Подгрузка данных в select
Добрый день!! Есть SELECT который формируется выборкой из БД, но этот селект содержит 50К+ значений. И соответственно ждать пока он...

Динамическая подгрузка данных
Добрый день. Такой момент: при создании сущности необходимо в dropdownlist выбрать какое либо значение и в зависимости от выбранного...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru