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

Оптимизация работы приложения

03.01.2018, 19:05. Показов 835. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, уважаемые форумчане!
Столкнулся со следующей проблемой.
Написал программу для склада в связке:
SQL + C#.
Работа основана на MySql запросах и выводе данные при помощи цикла в грид следующим кодом:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
            dataGridView2.RowCount = 1;
            int i = 0;
 
            string a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11;
            
            MySqlConnection Connect_DB = new MySqlConnection("Database=Склад;Data Source=localhost;User Id=" + BDU + ";Password=" + BDP);
            MySqlCommand Query = new MySqlCommand(); 
            Query.Connection = Connect_DB; 
            try
            {
                Connect_DB.Open();
            }
            catch { }
 
            try
            {
                MySqlCommand comm = Connect_DB.CreateCommand();
                comm.CommandText = "SELECT * FROM `Склад` WHERE `"+metroComboBox1.Text+"` LIKE '%"+ metroTextBox27.Text+ "%'";
                MySqlDataReader reader = comm.ExecuteReader();
                while (reader.Read())
                {
                    a1 = reader["Номер"].ToString();
                    a2 = reader["Наименование"].ToString();
                    a3 = reader["Кол.во.на.складе"].ToString();
                    a4 = reader["Выдано"].ToString();
                    a5 = reader["Списано"].ToString();
                    a6 = reader["Артикул"].ToString();
                    a7 = reader["Инвентарный номер"].ToString();
                    a8 = reader["Комментарий"].ToString();
                    a9 = reader["Дата_регистрации"].ToString();
                    a10 = reader["Стелаж"].ToString();
                    a11 = reader["Ячейка"].ToString();
 
                    dataGridView2.Rows.Add();
                    dataGridView2.Rows[i].Cells[0].Value = a1; 
                    dataGridView2.Rows[i].Cells[1].Value = a2; 
                    dataGridView2.Rows[i].Cells[2].Value = a6; 
                    dataGridView2.Rows[i].Cells[3].Value = a7; 
                    dataGridView2.Rows[i].Cells[4].Value = a10;
                    dataGridView2.Rows[i].Cells[5].Value = a11;
                    dataGridView2.Rows[i].Cells[6].Value = a3;
                    dataGridView2.Rows[i].Cells[7].Value = a4;
                    dataGridView2.Rows[i].Cells[8].Value = a5;
                    dataGridView2.Rows[i].Cells[9].Value = a8; 
                    dataGridView2.Rows[i].Cells[10].Value = a9;
                    i++;
                }
                reader.Close();
                Connect_DB.Close();
            }
            catch (MySqlException ex)
            {
                MessageBox.Show(ex.Message);
            }
Основная проблема в том, что загрузка данных и отображение их в грид занимает около 30-35сек на 350 позиций(строк) с БД.
Как можно улучшить вывод, т.к. база для огромного кол-ва позиций ( 10-12 тысяч), соответственно и оптимизация нужна, не могу придумать, как можно реализовать.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.01.2018, 19:05
Ответы с готовыми решениями:

Оптимизация работы приложения с Диспетчером печати
Постановка задачи: Есть сеть, в ней 100 ПК. К 15 ПК физически подключены принтера. Все принтера расшарены по сети, но подключены по...

Оптимизация работы приложения для отрисовки фрактала
Здравствуйте, всех с 2020 годом:) Требуется ваша помощь, форумчане) Надеюсь, на ваши идеи. Буду признателен за помощь Есть простое...

Типы оптимизация: черная оптимизация, серая оптимизация и белая оптимизация
Много много лет назад, на заре становления профессии "оптимизатора" в какой то умной книжке был создан миф. Это миф о цветовой индефикации...

6
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
03.01.2018, 19:10
Цитата Сообщение от DmitryVL Посмотреть сообщение
не могу придумать, как можно реализовать.
1. Не смешивайте Божий дар с яичницей (код доступа к данным с кодом UI).
2. Слишком большое количество данных в DGV совсем не нужно, ни один пользователь не сможет их охватить сразу. То есть, нужно выводить нужное количество строк, которое реально увидеть и осмыслить, а остальное подгружать по мере необходимости.
0
0 / 0 / 1
Регистрация: 24.12.2015
Сообщений: 103
03.01.2018, 19:17  [ТС]
1 - не очень понял
2 - необходимость имеется, т.к. сотрудник, который пользуется сием "чудом", попросил именно так сделать.
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
03.01.2018, 19:22
Цитата Сообщение от DmitryVL Посмотреть сообщение
1 - не очень понял
А что тут непонятного? Я же вроде сказал - отделить код работы с БД от кода UI (мух от котлет/агнцев от козлищ). Сейчас у вас все вместе. А надо отдельно. Ну и объектная модель нужна, чтобы проще было.
Цитата Сообщение от DmitryVL Посмотреть сообщение
сотрудник, который пользуется сием "чудом", попросил именно так сделать.
То есть он хочет, чтобы одномоментно на экран вывелось 10-15К строк? Тогда ему придется немного подождать, как это ни печально...
1
0 / 0 / 1
Регистрация: 24.12.2015
Сообщений: 103
03.01.2018, 19:24  [ТС]
Цитата Сообщение от insite2012 Посмотреть сообщение
А что тут непонятного? Я же вроде сказал - отделить код работы с БД от кода UI (мух от котлет/агнцев от козлищ). Сейчас у вас все вместе. А надо отдельно. Ну и объектная модель нужна, чтобы проще было.

То есть он хочет, чтобы одномоментно на экран вывелось 10-15К строк? Тогда ему придется немного подождать, как это ни печально...
А можно как-то постранично результат вывести?
И, если не сложно, можете ли показать пример по пункту 1
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
03.01.2018, 19:30
Цитата Сообщение от DmitryVL Посмотреть сообщение
можно как-то постранично результат вывести?
Можно (и даже нужно), о чем я вам и говорил выше.
Цитата Сообщение от DmitryVL Посмотреть сообщение
можете ли показать пример по пункту 1
Смотрите в этой теме, на первой странице есть мой простой пример. Посмотрите код, обдумайте и пишите свой.
0
0 / 0 / 1
Регистрация: 24.12.2015
Сообщений: 103
03.01.2018, 19:31  [ТС]
Спасибо большое за наставление
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.01.2018, 19:31
Помогаю со студенческими работами здесь

Оптимизация приложения
Здравствуйте! ====================== Предисловие : Недавно я создал симулятор с клеточным автоматом и генетическим...

Оптимизация приложения
Здравствуйте, подскажите пожалуйста, возможно ли оптимизировать приложение, написанное на WinApi, на данный момент в простое приложение...

Оптимизация приложения
Дорогие форумчане!Работаю над приложение. Его смысл в том что бы заполнять таблицу случайными полями из других таблиц. Есть таблица с...

Оптимизация приложения
Здравствуйте, уважаемые форумчане, подскажите пожалуйста в трех вопросах. 1)Допустим, что приложение генерит текст из нескольких...

Оптимизация приложения
Здравствуйте! 1.В игровых приложениях для андоид(имеется ввилу 2Д игры со спрайтовой анимацией), при отрисовке экрана, приходится...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru