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

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

02.03.2011, 21:34. Показов 9826. Ответов 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
Сообщений: 228
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
Сообщений: 228
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
Сообщений: 228
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
Сообщений: 228
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
Сообщений: 228
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
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru