Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.68/22: Рейтинг темы: голосов - 22, средняя оценка - 4.68
 Аватар для Frich22
0 / 0 / 0
Регистрация: 09.05.2021
Сообщений: 18

Медленная работа программы при обращении к БД

21.10.2021, 09:03. Показов 4935. Ответов 20

Студворк — интернет-сервис помощи студентам
Доброго времени суток.

Программа дважды обращается к БД.
1-ый раз при запуске, чтобы загрузить список в ComboBox.
2-ой раз, когда пользователь подтверждает выбранный элемент в ComboBox.

И я заметил, что эти функции даются программе не легко. Медленно работает. Как это дело можно ускорить? Ну и в целом, как можно оптимизировать код, что можно записать проще?

Ну и в любом случае, прошу делать поправку, что я ещё глупенький и объяснять мне чем подробнее, тем лучше.

Это код вызова БД
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
            class Query
    {
 
        OleDbConnection connection;
        OleDbCommand command;
        OleDbDataAdapter dataAdapter;
        DataTable bufferTable;
 
        public Query(string Conn)//конструктор класса
        {
            connection = new OleDbConnection(Conn);//инициализирует объект подключения
            bufferTable = new DataTable();
            
        }
public DataTable NameSubstanceTable()
        {
            connection.Open();
            dataAdapter = new OleDbDataAdapter("SELECT NameSubstance,№ FROM Substances", connection);
            bufferTable.Clear();
            dataAdapter.Fill(bufferTable);
            connection.Close();
            return bufferTable;
 
        }
 
        public void SubstanceParametr(int num, ref double beta, ref int class_V)
        {
            connection.Open();
            command = new OleDbCommand($"SELECT Beta FROM Substances WHERE №={num}", connection);
            beta = double.Parse(command.ExecuteScalar().ToString());
            command = new OleDbCommand($"SELECT Class_V FROM Substances WHERE №={num}", connection);
            class_V = int.Parse(command.ExecuteScalar().ToString());
            command.ExecuteNonQuery();
            connection.Close();
        }
}
Код WindowsForm
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
    Query controller;
        Calculations function;//класс содержащий некоторые мат.функции
 
        public double beta;
        public int class_V;
        public double sigma = 7;
        public double V_r;
        public double Mt;
 
        public Form1()
        {
            InitializeComponent();
            controller = new Query(ConnectionString.ConnStr);
            function = new Calculations();
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            int num = Convert.ToInt32(comboBox1_NameSubstance.SelectedValue);
            controller.SubstanceParametr(num, ref beta, ref class_V);
            int LvlClutter = int.Parse(BoxClutter.Text);
            int LvlSpeed = function.LvlSpeed(class_V, LvlClutter);
            Mt = double.Parse(BoxMt.Text);
            V_r = function.V_r(LvlSpeed, Mt);
            if (comboBox_PforR.Text=="Pf(R)")
            {
                labelUnitsOfValue.Text = "Па";
                double R = double.Parse(BoxValue.Text);
                BoxAnswer.Text = Convert.ToString( $"{function.Pf_R(R, Mt, beta, V_r, sigma):0.00}");
            }
            else if (comboBox_PforR.Text=="R(Pf)")
            {
                labelUnitsOfValue.Text = "м";
                double Pf = double.Parse(BoxValue.Text);
                BoxAnswer.Text = Convert.ToString($"{function.R_Pf(Pf, Mt, beta, V_r, sigma):0.00}");
            }
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            comboBox1_NameSubstance.DataSource = controller.NameSubstanceTable();
            comboBox1_NameSubstance.DisplayMember = "NameSubstance";
            comboBox1_NameSubstance.ValueMember = "№";
            comboBox1_NameSubstance.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
            comboBox1_NameSubstance.AutoCompleteSource = AutoCompleteSource.ListItems;
        }
Добавлено через 12 минут
Забыл добавить, что ACCESS вроде 2021 года.
БД формата accdb.
И таблица обращения зависит от таблицы Excel. Т.е. чтобы изменить БД, мне нужно изменить файл Excel, а изменения автоматически добавятся в БД.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.10.2021, 09:03
Ответы с готовыми решениями:

Медленная работа сетевой программы
В наличии имеются: 1) Роутер TP-Link Tl-WR740N 2) Маршрутизатор D-Link DI-524 3) Коммутатор D-Link DES-1005C 4) 4 ПК с...

Медленная работа - несовершенство программы?
Функция Мулост(Число) вычисляет мультипликативный остаток от извлечения квадратного корня. Function Мулост(Число) Dim m As Double, k...

Медленная работа программы через сетевой диск
Есть два сервера которые находятся в разных подсетях. Один имеет ип адрес 192.168.1.220 другой 192.168.40.50 На серверах установлена...

20
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
29.10.2021, 23:06
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Frich22 Посмотреть сообщение
Разве в C# есть модели?
"Модель" - это всего лишь термин, широко используемый в программировании, и подразумевает некий абстрактный класс, соответствующий сущности в БД (записи набора данных, возвращаемого запросом к таблице, UDF, SP).
Она (модель) позволяет работать с сущностью БД не вдаваясь в детали, что это за сущность, как она извлекается из базы или кладется туда. Почитайте про ORM и многое станет понятным. В частности то, что c# только один из множества языков, работающих весьма успешно, с этим патерном.

Добавлено через 6 минут
В широком смысле "модель" вообще может быть не связана ни с какой БД, а может отражать лишь некоторый целостный объект, с которым манипулирует программный алгоритм. Т.е. своего рода служить некоторым ящиком, контейнером, содержащим какие-то данные о какой-то сущности.
На моделях построен, к примеру, достаточно популярный и продвинутый патерн MVC, в котором обмен информацией между Клиентом и Web-Сервером с одной стороны и Web-сервером и SQL-сервером - с другой стороны, реализуется моделями.

Добавлено через 1 минуту
Не охота в сотый раз писать туп примеры, их нетрудно найти даже на этом ресурсе.

Добавлено через 9 минут
Цитата Сообщение от Frich22 Посмотреть сообщение
объяснить как взаимосвязаны C# и .NET
.NET - это платформа, фреймворк, набор библиотек с классами и интерфейсами, позволяющий писать приложения, не вдаваясь в подробности реализации его (приложения) работы.
c# - это язык программирования (компилятор), реализованный на платформе .NET
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.10.2021, 23:06

Aser v5 i7 u - очень медленная загрузка системы и такая же медленная работа приложений
Всем привет. Полгода назад купил ноут ( aser v5 i7 u) . Все было нормально, но неделю назад начал не много тормозить, всегда долго...

Очень медленная работа при запуске
Есть вот такое чудо, при запуске выдаёт результат через минуты 2, в чём косяк, ведь код не большой и не сложный. #include...

Медленная работа NETSCAPE при POST
Почему сервер формирует и пересылает страницу(ASP,любой скрипт-язык,POST,ADO) при использовани NETSCAPE на порядок медленнее,чем это делает...

Ошибка при обновлении + медленная работа сервера
Добрый день. Конфигурация «Бухгалтерия сельскохозяйственного предприятия» 3.0.44.140 Платформа 8.3.8.2197 Размер базы 2Гб ...

Медленная работа callback функций при wsDualHttpBinding
Доброго времени суток, уважаемые. Имеется WCF-проект, состоящий из сервиса (Service Library), хоста и клиента. Использую биндинг...


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

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru