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

С задержкой выводится информация в DataGridView

04.12.2022, 11:48. Показов 640. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня на форме есть DataGridView на которую выводится инфа из бд. С выводом всё ок, но когда добавляю новые записи в бд, через форму, то на DataGridView выводится бд с новой записью, но с какой-то задержкой. Только через 2-3 секунды после добавления. Вопрос, так и должно быть или я что-то неправильно накодил?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.12.2022, 11:48
Ответы с готовыми решениями:

С задержкой отображается информация из бд
У меня есть бд в аксесе. Есть форма 1 с листбоксом, в который выводится инфа из бд. На форме 2 юзер может добавить новую инфу в бд. Есть...

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

Не выводится информация из бд
Пишу MVC5 приложение и так как я новичок в этом столкнулся с некоторой трудностью, а именно на страницу не выводится результат из бд. ...

9
0 / 0 / 0
Регистрация: 03.05.2020
Сообщений: 129
05.12.2022, 14:38  [ТС]
И хотелось бы узнать вообще какое среднее время выполнения запросов для добавления инфы в бд и вывод её в datagridview.
Просто, в чём может быть проблема и как вообще можно оптимизировать этот процесс.
0
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,768
05.12.2022, 14:47
Если у вас не мега-база с миллиардами записей и сотнями индексов, если серверу БД хватает ресурсов для выполнения запросов, то запрос на добавление занимает несколько миллисекунд (с поправкой на качество канала между приложением и сервером БД). Выборка записи из БД и обновление её в UI - те же несколько миллисекунд.

Однако, это если процесс предсказуемый, т.е. если именно код вашего приложения добавляет запись в БД и знает, что её надо обновить в UI. Если же запись в базу добавляется какими-то другим пользователем из другого приложения и требуется отслеживание этого события, то тут уже зависит от способов уведомления вашего приложения об изменениях в БД.
0
 Аватар для Andrey-MSK
3349 / 2235 / 388
Регистрация: 14.08.2018
Сообщений: 7,560
Записей в блоге: 4
05.12.2022, 14:50
Цитата Сообщение от TRUEMETALBOY Посмотреть сообщение
И хотелось бы узнать вообще какое среднее время выполнения запросов для добавления инфы в бд и вывод её в datagridview.
Посмотреть профайлером для вашей СУБД, там будет указано время выполнения запроса, ну и еще добавить манёк на загрузку данных по сети...

Добавлено через 2 минуты
Цитата Сообщение от kotelok Посмотреть сообщение
то тут уже зависит от способов уведомления вашего приложения об изменениях в БД
Не все СУБД поддерживают отправку уведомлений об изменении данных, например MS SQL Server умеет такое только в Enterprise версии.
0
0 / 0 / 0
Регистрация: 03.05.2020
Сообщений: 129
05.12.2022, 15:04  [ТС]
Andrey-MSK, kotelok, Моя бд находится в Access файле, в той же папке, что и программа. Получается новая запись отправляется в access и на это почему-то уходит примерно 2-3 секунды. Потому что, к примеру, после добавления сразу выполняется метод обновления в datagridview, таблица обновляется, но остаются старые значения и приходится несколько раз нажимать кнопку "обновить", чтобы получить актуальную таблицу с новой записью.
0
 Аватар для Andrey-MSK
3349 / 2235 / 388
Регистрация: 14.08.2018
Сообщений: 7,560
Записей в блоге: 4
05.12.2022, 15:07
TRUEMETALBOY, Код покажите, записи и обновления данных.
0
0 / 0 / 0
Регистрация: 03.05.2020
Сообщений: 129
05.12.2022, 15:14  [ТС]
Andrey-MSK,
Добавление:
C#
1
2
3
4
5
6
7
8
public void AddStud(string name1, string name2, string name3, string tel, string group)
        {
 
            myConnection.Open();
            string query = $"INSERT INTO [Students] (first_name, second_name, middle_name, [group], tel_number) VALUES ('{name1}', '{name2}', '{name3}', '{group}', '{tel}')";
            OleDbCommand cmd = new OleDbCommand(query, myConnection);
            cmd.ExecuteNonQuery();
        }
Обновление:
C#
1
2
3
4
public void UpdateDgv()
        {
            this.studentsTableAdapter.Fill(this.myDBDataSet.Students);
        }
0
 Аватар для Andrey-MSK
3349 / 2235 / 388
Регистрация: 14.08.2018
Сообщений: 7,560
Записей в блоге: 4
05.12.2022, 15:17
TRUEMETALBOY, Чета у вас какая-то смесь. И DataSet, и OleDbCommand. Вы что-то одно используйте...
0
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,768
05.12.2022, 15:20
Проведите тест, чтобы хотя бы примерно локализовать проблему - сразу после добавления записи - cmd.ExecuteNonQuery() - закройте подключение, откройте новое и через него запросите данные не через адаптер, а так же прямым запросом. Если тут всё ок будет и новая запись сразу будет в выборке, значит какие-то нюансы с 'TableAdapter' (может его надо как-то правильно рефрешить, может надо подключение переоткрывать).

Ну и дополнительно можете засечь время выполнения запроса на добавление записи.
0
 Аватар для Andrey-MSK
3349 / 2235 / 388
Регистрация: 14.08.2018
Сообщений: 7,560
Записей в блоге: 4
05.12.2022, 15:31
TRUEMETALBOY, Вот так добавляются данные в БД, при условии что к DataGrid привязана коллекция, которая сама обновляет элемент UI, тип коллекции BindingList<T> или ObservableCollection<T>
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
private async Task AddTicket()
{
    var vm = _viewModelFactory.CreateViewModel<IEditTicketDialogVM>();
 
    vm.EditMode = false;
    vm.Ticket = new Ticket
    {
        EmployeeID = SelectedEmployee.EmployeeID
    };
 
    _windowService.ShowDialog(vm);
    
    // Получаем из диалога новый билет
    if (vm.DialogResult == true)
    {
        try
        {
            // Сохраняем его в БД
            await _mainDA.TicketDA.AddEmployeeTicketAsync(vm.Ticket);
 
            Ticket ticket = new Ticket
            {
                TicketID = vm.Ticket.TicketID,
                EmployeeID = vm.Ticket.EmployeeID,
                TravelDate = vm.Ticket.TravelDate,
                Departure = vm.Ticket.Departure,
                Destination = vm.Ticket.Destination,
                Price = vm.Ticket.Price
            };
            
            // Добавляем новый билет в коллекцию в окне
            Tickets.Add(ticket);
 
            SelectedTicket = Tickets.FirstOrDefault(t => t.TicketID == ticket.TicketID);
        }
        catch (Exception ex)
        {
            _windowService.ShowErrorMessage(ex.ToString(), "Ошибка");
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.12.2022, 15:31
Помогаю со студенческими работами здесь

Не выводится информация из БД
Здравствуйте, Подключил стандартную БД Northwind.sdf и через LINQ SQL хочу сделать выборку данных. Northwnd nw = new Northwnd(); ...

Не выводится информация
Здравствуйте, пытаюсь сделать CMS. Общий код готов, осталось только доработать детали. Одной из таких деталей является Вывод ошибки...

Не выводится информация из бд по id
Здравствуйте, форумчане. Прошу помощи. Не получается вывести информацию из бд по id. Проблема в следующем, есть некая страница...

Не правильно выводится информация
Нужна помощь ребятки Выводится так и базы,с кодировкой вроде все нормально, в чем может быть ошибка?

Неправильно выводится информация
Добрый день. Изучаю MySQL и PHP и вот столкнулся с такой проблемой. Имеется код, в котором присутствует создание формы и,...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru