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

Update после редактирования в DataGridView

02.03.2011, 21:34. Показов 9864. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
После редактирования ячейки DataGridView и перехода в другую строку работает код обработчика
SelectionChanged

C#
1
2
3
4
private void grid_SelectionChanged(object sender, EventArgs e)
{
  tabTableAdapter.Update(this.dsTab.tab);
}
Нужно, чтобы Update происходил не только при переходе к другой строке, но и при переходе
к другому контролу

НЕ РАБОТАЕТ :
C#
1
2
3
4
private void grid_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
  tabTableAdapter.Update(this.dsTab.tab);
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.03.2011, 21:34
Ответы с готовыми решениями:

Обновление БД sql после редактирования DataGridView
Доброго времени суток) Подскажите пожалуйста.... уже второй день бьюсь не могу найти ничего путевого по проблеме занесения измененных...

Фокус после update datagridview
Доброго, прошу подсказать как можно реализовать, например, длинный список в датагриде и на строке 792 я удалил запись, после подтверждения...

Обновление базы данных после редактирования в dataGridView.
Обновление базы данных после редактирования в dataGridView. Первая кнопка вытаскивает все столбцы таблицы item в dataGridView3, здесь...

11
181 / 107 / 13
Регистрация: 22.03.2010
Сообщений: 456
03.03.2011, 10:31
Цитата Сообщение от VovavoV Посмотреть сообщение
После редактирования ячейки DataGridView и перехода в другую строку работает код обработчика
SelectionChanged

C#
1
2
3
4
private void grid_SelectionChanged(object sender, EventArgs e)
{
  tabTableAdapter.Update(this.dsTab.tab);
}
Нужно, чтобы Update происходил не только при переходе к другой строке, но и при переходе
к другому контролу

НЕ РАБОТАЕТ :
C#
1
2
3
4
private void grid_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
  tabTableAdapter.Update(this.dsTab.tab);
}
Попробуй в этом событии:
C#
1
2
3
4
private void dataGridView1_Leave(object sender, EventArgs e)
        {
 
        }
0
49 / 49 / 7
Регистрация: 03.12.2010
Сообщений: 229
03.03.2011, 11:19  [ТС]
Ни Leave, ни CellLeave не помогают
0
181 / 107 / 13
Регистрация: 22.03.2010
Сообщений: 456
03.03.2011, 15:35
Цитата Сообщение от VovavoV Посмотреть сообщение
Ни Leave, ни CellLeave не помогают
Может что-то не то делаешь.
Я проверял Leave, функция выполняется, когда просто переходишь на другой контрол.
0
49 / 49 / 7
Регистрация: 03.12.2010
Сообщений: 229
03.03.2011, 16:57  [ТС]
Цитата Сообщение от Nukutu
Я проверял Leave, функция выполняется, когда просто переходишь на другой контрол.
Функция то выполняется, а Update не происходит
0
181 / 107 / 13
Регистрация: 22.03.2010
Сообщений: 456
03.03.2011, 21:51
Цитата Сообщение от VovavoV Посмотреть сообщение
Функция то выполняется, а Update не происходит
Ты хочешь сказать, что в одном случае Update выполняется, а в другом нет?
Или "не происходит" имеется ввиду то, что в базе данных изменений не происходит?
Тогда ищи ошибку в логики твоего кода.
0
49 / 49 / 7
Регистрация: 03.12.2010
Сообщений: 229
04.03.2011, 01:53  [ТС]
Происходит следующее. Сделал изменения в ячейке.

1. Если Нажимаю к примеру UpArrow и перехожу к другой
строке DataGridView. Вызывается
C#
1
2
3
4
private void grid_SelectionChanged(object sender, EventArgs e)
{
  tabTableAdapter.Update(this.dsTab.tab);
}
Update произошёл, что видно при закрытии формы и новой её загрузке

2. Но если мышью перейти в другой контрол - и при этом вызовится
Leave, CellLeave, CellEndEdit в которых та же строка для Update
C#
1
tabTableAdapter.Update(this.dsTab.tab);
в гриде остаётся новое введённое значение, но после закрытия формы и новой её загрузке
в гриде старое значение
0
181 / 107 / 13
Регистрация: 22.03.2010
Сообщений: 456
04.03.2011, 09:32
Цитата Сообщение от VovavoV Посмотреть сообщение
Происходит следующее. Сделал изменения в ячейке.

1. Если Нажимаю к примеру UpArrow и перехожу к другой
строке DataGridView. Вызывается
C#
1
2
3
4
private void grid_SelectionChanged(object sender, EventArgs e)
{
  tabTableAdapter.Update(this.dsTab.tab);
}
Update произошёл, что видно при закрытии формы и новой её загрузке

2. Но если мышью перейти в другой контрол - и при этом вызовится
Leave, CellLeave, CellEndEdit в которых та же строка для Update
C#
1
tabTableAdapter.Update(this.dsTab.tab);
в гриде остаётся новое введённое значение, но после закрытия формы и новой её загрузке
в гриде старое значение
Ты сконцентрировался на обновлении между ДатаСет и базой данных (tabTableAdapter.Update(this.dsTab.tab); ), но у тебя не обновляется таблица this.dsTab.tab при переходе в другой коонтрол. Так как кода нет, то сказать почему, нельзя. Сделай обработку обновления таблицы this.dsTab.tab и будет работать.
0
49 / 49 / 7
Регистрация: 03.12.2010
Сообщений: 229
04.03.2011, 10:50  [ТС]
Действительно, данные из редактируемой строки DataGridView при переходе к другому контролу
не переносятся в связанную с ним DataTable - ещё до вызова DataSet->Update
Наверно в DataGridView должна быть ф-я сохранения изменений в DataTable.
0
181 / 107 / 13
Регистрация: 22.03.2010
Сообщений: 456
04.03.2011, 15:15
Цитата Сообщение от VovavoV Посмотреть сообщение
Действительно, данные из редактируемой строки DataGridView при переходе к другому контролу
не переносятся в связанную с ним DataTable - ещё до вызова DataSet->Update
Наверно в DataGridView должна быть ф-я сохранения изменений в DataTable.
Во-первых, как у тебя связана ДатаСет с DataGridView?
Во-вторых, как у тебя обновляется таблица в первом варианте, при переходе на другую запись DataGridView, так и сделай здесь, т.е. используй обновление такое же.
0
49 / 49 / 7
Регистрация: 03.12.2010
Сообщений: 229
04.03.2011, 15:20  [ТС]
Нашёл решение здесь http://msdn.microsoft.com/quer... P)&rd=true

Перед вызовом Update нужно вызвать метод формы Validate
C#
1
2
3
4
5
private void grid_Leave(object sender, EventArgs e)
{
  Validate();
  tabTableAdapter.Update(this.dsTab.tab);
}
2
1 / 1 / 0
Регистрация: 16.11.2010
Сообщений: 10
25.03.2011, 03:09
Да Validate(); помогло.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.03.2011, 03:09
Помогаю со студенческими работами здесь

Очистка DataGridView после окончания редактирования ячейки
Собственно нужно чтоб после редактирования ячейки все содержимое удалялось и заполнялось снова. Rows.Clear() и Columns.Clear() в...

Установка фокуса на соседнюю ячейку DataGridView после редактирования
Нужно чтобы после редактирования ячейки dataGridView1 и нажатия Enter, фокус устанавливался на ячейку, которая находится справа от...

Ошибка редактирования Update
Осуществляется редактирование БД . Все редактируется и выводится в DataGridView. Пытаюсь сохранить изменения, выдается следующая ошибка....

Как передать Id в запрос редактирования БД Правильность UPDATE
БД таблица в ней 5 колонок id, Name, Login, Password, Email Код страницы редактирования <?php include...

Запрет редактирования DataGridView
Как запретить редактировать определенные ячейки?


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru