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

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

07.11.2022, 14:57. Показов 561. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня есть бд в аксесе. Есть форма 1 с листбоксом, в который выводится инфа из бд. На форме 2 юзер может добавить новую инфу в бд.
Есть метод для обновления инфы в листбоксе:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public void UpdateDBGroups()
        {
            string query = "SELECT group_name FROM [Group] ORDER BY group_name";
 
            OleDbCommand cmd = new OleDbCommand(query, myConnection);
            OleDbDataReader reader = cmd.ExecuteReader();
 
            GroupList.Items.Clear();
            while (reader.Read())
            {
                GroupList.Items.Add(reader[0].ToString());
            }
            this.groupTableAdapter.Fill(this.myDBDataSet.Group);
            reader.Close();
        }
Этот метод вызывается при закрытии формы 2 и после нажатия кнопки "удаления из листбокса".
Но проблема заключается в том, что после ввода новой инфы и закрытия формы 2, в листбоксе не сразу обновляется информация , но при удалении - сразу.
Метод удаления:
C#
1
2
3
string query = $"DELETE FROM [Group] WHERE group_name = '{box1.SelectedItem}'";
                OleDbCommand cmd = new OleDbCommand(query, connection);
                cmd.ExecuteNonQuery();
Так вот, хотелось бы узнать, либо я что-то не так сделал, либо так и должно быть?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.11.2022, 14:57
Ответы с готовыми решениями:

Не отображается информация
При генерации файла, создается 100 записей,когда открываю текстовый файл там следующая ситуация(см. картинку). Но как только убираю эти...

Не отображается информация на диске D
Установил ХР на диск С, в моем компьютере отображаются оба диска, но при открытии диска Д информации нет (хотя вроде бы заполнен по...

Не отображается информация в полях
Добрый вечер, в форме "Сотрудники" почему-то не отображается информация в полях: "Должность, Секретность, Классность, Уч. звание,...

9
Valechka-Думай о Высоком
 Аватар для Ludwig Valentin
171 / 290 / 26
Регистрация: 11.08.2022
Сообщений: 3,713
07.11.2022, 20:21
Если всё работает, то и жаловаться не на что.
После удаления элемента из списка надо его чистить и читать данные заново.
Лучше использовать не listbox, а datagridview. Красивее можно отформатировать.
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,234
07.11.2022, 21:28
Цитата Сообщение от Ludwig Valentin Посмотреть сообщение
читать данные заново.
Зачем заново-то читать? Удалил из базы, удалил из UI, и хватит на этом.
Если клиентов может быть много, которые правят общую базу, тогда дополнительно добавить кнопку аля Refresh.

Добавлено через 32 минуты
TRUEMETALBOY, скорее всего проблема в том, что вы заненадобностью читаете все данные из таблицы после удаления/добавления. + к тому же в этом методе на самом деле выполняется 2 запроса на чтение.
1
Valechka-Думай о Высоком
 Аватар для Ludwig Valentin
171 / 290 / 26
Регистрация: 11.08.2022
Сообщений: 3,713
08.11.2022, 01:04
Цитата Сообщение от IamRain Посмотреть сообщение
Зачем заново-то читать? Удалил из базы, удалил из UI, и хватит на этом.
Если клиентов может быть много, которые правят общую базу, тогда дополнительно добавить кнопку аля Refresh.
Если клиент не один, параллелизм, понимаешь.
0
Эксперт .NET
 Аватар для Usaga
14314 / 9399 / 1355
Регистрация: 21.01.2016
Сообщений: 35,447
08.11.2022, 04:10
Цитата Сообщение от Ludwig Valentin Посмотреть сообщение
После удаления элемента из списка надо его чистить и читать данные заново.
Это требованиями определяется. Параллелизм тут не определяющий фактор.
0
Valechka-Думай о Высоком
 Аватар для Ludwig Valentin
171 / 290 / 26
Регистрация: 11.08.2022
Сообщений: 3,713
08.11.2022, 06:33
Цитата Сообщение от Usaga Посмотреть сообщение
Параллелизм тут не определяющий фактор.
Возможно, для монопольного доступа сойдёт и так.
0
Эксперт .NET
 Аватар для Usaga
14314 / 9399 / 1355
Регистрация: 21.01.2016
Сообщений: 35,447
08.11.2022, 10:57
Ludwig Valentin, для многопользовательского это тоже решается индивидуально. Я об этом, а не о монопольном доступе.
0
2287 / 1603 / 400
Регистрация: 26.06.2017
Сообщений: 4,754
Записей в блоге: 1
08.11.2022, 11:11
Проблему обозначил IamRain. "Курсор" БД используется двумя объектами.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public void UpdateDBGroups()
        {
          string query = "SELECT group_name FROM [Group] ORDER BY group_name";
 
          OleDbCommand cmd = new OleDbCommand(query, myConnection);
 
          GroupList.Items.Clear();
          using (OleDbDataReader reader = cmd.ExecuteReader())
          {
            while (reader.Read())
            {
                GroupList.Items.Add(reader[0].ToString());
            }
            reader.Close();
          }
          this.groupTableAdapter.Fill(this.myDBDataSet.Group);
        }
1
0 / 0 / 0
Регистрация: 03.05.2020
Сообщений: 129
08.11.2022, 17:30  [ТС]
IamRain,
Цитата Сообщение от IamRain Посмотреть сообщение
вы заненадобностью читаете все данные из таблицы после удаления/добавления.
Просто как раз таки удаление работает моментально и сразу отображается в листбоксе, а добавление с задержкой.
Цитата Сообщение от IamRain Посмотреть сообщение
к тому же в этом методе на самом деле выполняется 2 запроса на чтение
Увидел, сделал только один запрос, но не исправило проблему.
Вот код добавления:
C#
1
2
3
4
5
string name = tb.Text, query = $"INSERT INTO [Group] (ide, group_name) VALUES ({ide},'{name}')";
            OleDbCommand cmd = new OleDbCommand(query, connection);
            cmd.ExecuteNonQuery();
 
            MessageBox.Show("Группа добавлена!");
Код удаления:
C#
1
2
3
 string query = $"DELETE FROM [Group] WHERE group_name = '{box1.SelectedItem}'";
                OleDbCommand cmd = new OleDbCommand(query, connection);
                cmd.ExecuteNonQuery();
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,234
08.11.2022, 18:15
TRUEMETALBOY, запрос добавления, примерно так:
C#
1
2
3
4
5
6
7
8
// добавили в базу
string name = tb.Text, query = $"INSERT INTO [Group] (ide, group_name) VALUES ({ide},'{name}')";
            OleDbCommand cmd = new OleDbCommand(query, connection);
            cmd.ExecuteNonQuery();
 
//добавили в UI
GroupList.Items.Add(name);
MessageBox.Show("Группа добавлена!");
Аналогично при удалении.

Добавлено через 2 минуты
И почитайте про параметры запроса, в том виде, в котором у вас сейчас, считается небезопасно выполнять запросы.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.11.2022, 18:15
Помогаю со студенческими работами здесь

Не отображается информация в кубах
Создал БД в SQL, создал измерения в SQL Server Data Tools. Создал куб, но при обработке вылазят ошибки: Error 34 Ошибки модуля хранения...

DGV не отображается информация
Ну могу понять по какой причине не отображется информация в добавленном мной столбце в DGV.... Притом что через месаджбокс после...

не отображается информация в GridView
Доброго времени суток всем. код такой: connection.Open(); command.CommandText = "SELECT...

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

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


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru