49 / 49 / 7
Регистрация: 03.12.2010
Сообщений: 229

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

02.03.2011, 21:34. Показов 9880. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru