Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 06.11.2018
Сообщений: 145

Обновить DataGridView

30.04.2019, 15:08. Показов 1942. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте! Как обновить всю строку DataGridView?
1. Есть Form1 и Form2
2. В Form1 есть три кнопки
3. Первой кнопкой перехожу в Form2
4. В Form2 есть два TextBox-а и одна кнопка
5. С Form2 этим кодом добавляю данные в БД
C#
1
2
3
4
5
6
7
8
9
10
11
con.Open();
 
OleDbCommand command = new OleDbCommand();
command.Connection = con;
 
command.CommandText = "INSERT INTO [Klient] (T_A_A, Tuylgan_jyly) Values (@T_A_A, @Tuylgan_jyly)";
command.Parameters.AddWithValue("@T_A_A", textBox1.Text);
command.Parameters.AddWithValue("@Tuylgan_jyly", maskedTextBox1.Text);
int numberOfUpdatedItems = command.ExecuteNonQuery();
 
con.Close();
6. Второй кнопкой удаляю выбранную строку из DataGridView
C#
1
2
3
4
5
6
7
8
9
OleDbCommand command = new OleDbCommand();
command.Connection = con;
command = new OleDbCommand("Delete From [Klient] Where Klient_ID = @Klient_ID", con);
con.Open();
int ID = Convert.ToInt32(dataGridView1.CurrentRow.Cells[0].Value);
command.Parameters.AddWithValue("@Klient_ID", ID);
int deletedCount = command.ExecuteNonQuery();
MessageBox.Show("Deleted " + deletedCount + " records");
con.Close();
7. Какой код написать в третью кнопку, чтобы обновить всю строку DataGridView?
8. Попробовал этот код, но она не работает
C#
1
2
3
4
5
6
7
OleDbCommand command = new OleDbCommand();
command.Connection = con;
command = new OleDbCommand("Update From [Qyzmetker] Where Qyzmetker_ID=@Qyzmetker_ID", con);
con.Open();
command.Parameters.AddWithValue("@Qyzmetker_ID", ID);
MessageBox.Show("Updates records");
con.Close();
Кликните здесь для просмотра всего текста
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.04.2019, 15:08
Ответы с готовыми решениями:

Обновить строку в Datagridview
Сейчас есть такой код, как сделать что бы обновлялось состояние в таблице? Прикрепил скрин к сообщению. (Обработчик кнопки...

Как обновить datagridview?
Делаю следующее: имеется класс DBload class DbLoad { private SqlConnection sqlconnection; private SqlCommand sqlcommand =...

Как обновить List из datagridview
Помогите пожалуйста у меня есть datagridview в качестве источника данных привязан List<Class>. Надо чтобы после заполнения с...

11
0 / 0 / 0
Регистрация: 06.11.2018
Сообщений: 145
30.04.2019, 15:50  [ТС]
Кто нибудь может помочь с этим кодом?
C#
1
2
3
4
5
6
7
OleDbCommand command = new OleDbCommand();
command.Connection = con;
command = new OleDbCommand("Update From [Klient] Where Klient_ID=@Klient_ID", con);
con.Open();
command.Parameters.AddWithValue("@Klient_ID", ID);
MessageBox.Show("Updates records");
con.Close();
0
Фрилансер
805 / 312 / 148
Регистрация: 13.02.2019
Сообщений: 1,071
30.04.2019, 16:05
ElBarca, у Вас команда Update неправильно составлена. Смотрите тут правильный синтаксис команды
0
0 / 0 / 0
Регистрация: 06.11.2018
Сообщений: 145
30.04.2019, 16:30  [ТС]
asn31337, Вы про это
C#
1
command = new OleDbCommand("Update [Klient] Set Klient_ID, T_A_A, Tuylgan_jyly Where Klient_ID", con);
Если вам не трудно можете доработать мой код? Добавление и Удаление работают, но только Обновление не работает.
0
 Аватар для Kazbek17
1483 / 938 / 454
Регистрация: 06.02.2012
Сообщений: 2,868
30.04.2019, 16:43
ElBarca,
Тут должно быть перечисление колонок с новыми значениями, которые в данный момент вы хотите редактировать.
SQL
1
UPDATE [Klient] SET  T_A_A='значение', Tuylgan_jyly='Значение' WHERE Klient_ID = ID
1
Фрилансер
805 / 312 / 148
Регистрация: 13.02.2019
Сообщений: 1,071
30.04.2019, 16:48
Цитата Сообщение от ElBarca Посмотреть сообщение
Вы про это
Да. Каждая sql команда имеет свой синтаксис. И если его не придерживаться, то команда работать не будет...

Цитата Сообщение от ElBarca Посмотреть сообщение
Если вам не трудно можете доработать мой код?
Ну доработать у меня вряд ли получится, т.к. я не знаю Вашей задачи, у меня нет структуры Вашей БД и еще, если честно, мне лень... Могу сделать пару замечаний по Вашему коду:
1.
SQL
1
SET Klient_ID
как правило, ключевые слолбцы делают с автоинкрементом и СУБД не позволит просто так его изменить. Особенно, если по этому ключу есть связанные таблицы. Т.е. Klient_ID в запросе на обновление не должен фигурировать.
2. В команде на обновление должны указываться и значения, которые должны быть установлены. Т.е. не
Цитата Сообщение от ElBarca Посмотреть сообщение
SQL
1
SET Klient_ID, T_A_A, Tuylgan_jyly
,
а, что то вроде
SQL
1
SET T_A_A = 123, Tuylgan_jyly = 321
3.
Цитата Сообщение от ElBarca Посмотреть сообщение
SQL
1
WHERE Klient_ID
А тут должно быть условие, а не просто указание столбца.
Т.е как то так:
SQL
1
WHERE Klient_ID = 1
1
0 / 0 / 0
Регистрация: 06.11.2018
Сообщений: 145
30.04.2019, 16:52  [ТС]
Kazbek17, Я не понял какие значение? Вы о TextBox-ах? Но они же в другой форме
0
Фрилансер
805 / 312 / 148
Регистрация: 13.02.2019
Сообщений: 1,071
30.04.2019, 16:57
Цитата Сообщение от ElBarca Посмотреть сообщение
Я не понял какие значение?
Вы хотите обновить строку в таблице... Это подразумевает замену существующих значений на новые... К примеру, было у Вас в таблице T_A_A = 10, а Вам нужно изменить на 20. Вот "20" это и есть то значение, которое нужно указать в запросе.
Цитата Сообщение от ElBarca Посмотреть сообщение
Вы о TextBox-ах?
Мы то откуда можем знать где Вы берете эти самые значения...
Цитата Сообщение от ElBarca Посмотреть сообщение
Но они же в другой форме
Весьма странное решение - вводить данные в одном месте, а запрос на обновление этих данных выполнять в другом...
0
0 / 0 / 0
Регистрация: 06.11.2018
Сообщений: 145
30.04.2019, 17:00  [ТС]
asn31337, Так тоже не работает (
SQL
1
2
3
4
5
6
7
OleDbCommand command = NEW OleDbCommand();
            command.Connection = con;
            command = NEW OleDbCommand("Update [Klient] SET T_A_A = 123, Tuylgan_jyly = 321 WHERE Klient_ID = 1", con);
            con.Open();
            command.Parameters.AddWithValue("@Klient_ID", ID);
            MessageBox.Show("Updates records");
            con.Close();
Добавлено через 2 минуты
asn31337,
Цитата Сообщение от asn31337 Посмотреть сообщение
Весьма странное решение - вводить данные в одном месте, а запрос на обновление этих данных выполнять в другом...
Правильно же добавляешь данные в другой форме, а сама таблица будет в другой форме
0
Фрилансер
805 / 312 / 148
Регистрация: 13.02.2019
Сообщений: 1,071
30.04.2019, 17:11
Цитата Сообщение от ElBarca Посмотреть сообщение
Так тоже не работает
Так я же Вам для примера просто показал... Разумеется, если просто скопировать, то работать не будет... Во-первых, Вы не учитываете типы данных в столбцах. 123 - это я просто для примера указал. Я не в курсе какие у Вас там типы. А во-вторых, с чего это должно работать, если Вы команду не исполняете? Нужно ExecuteNonQuery выполнить для команды. Почитайте документацию в той ссылке, которую я Вам скинул выше. А то проблемы то у Вас совсем элементарные. Неужели мы должны Вам примитивные вещи объяснять?

Добавлено через 2 минуты
Цитата Сообщение от ElBarca Посмотреть сообщение
данные в другой форме, а сама таблица будет в другой форме
И что из этого следует? Таблица используется, насколько я понимаю, для отображения данных. Значит там должен быть запрос на выборку. А там где меняете значения, должен быть запрос Update

Добавлено через 2 минуты
ElBarca, вот Вам рабочий пример использования команды Update

Добавлено через 3 минуты
Цитата Сообщение от asn31337 Посмотреть сообщение
Значит там должен быть запрос на выборку. А там где меняете значения, должен быть запрос Update
А если уж совсем по уму делать, то это все должно происходить в одном и том же месте - в модели! А формы в этом деле вообще не должны быть задействованы.
1
0 / 0 / 0
Регистрация: 06.11.2018
Сообщений: 145
30.04.2019, 19:09  [ТС]
asn31337, Хорошо сделаю так как говорите. Поставлю DataGridView и TextBox-ы в одну форму.
Решил сделать так, поставлю TextBox-ы в Panel и хочу сделать видимым ее только по нажатию кнопки.
С этим кодом смог скрыть ее, я хочу чтобы при открытий формы она уже была скрыта. Как это сделать?
C#
1
2
3
4
private void button3_Click(object sender, EventArgs e)
        {
            panel1.Hide();
        }
Добавлено через 3 минуты
asn31337, Все разобрался, спасибо всем!
0
Фрилансер
805 / 312 / 148
Регистрация: 13.02.2019
Сообщений: 1,071
30.04.2019, 19:11
Цитата Сообщение от ElBarca Посмотреть сообщение
я хочу чтобы при открытий формы она уже была скрыта. Как это сделать?
Очевидно, нужно добавить panel1.Hide(); в метод Form_Load
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.04.2019, 19:11
Помогаю со студенческими работами здесь

Как обновить DataGridView из Form2?
В Form2 вносятся изменения в базу данных, после чего необходимо обновить DataGridView. Как это можно реализовать?

Как обновить dataGridView не закрывая форму?
Здравствуйте! Если кто сталкивался с этим, подскажите, как обновить dataGridView не закрывая форму. Вот код программы. Пользователь вводит...

Обновить содержимое DataGridView, привязанного к данным
Всем привет! Помогите пожалуйста разобраться... На форме есть dataGridView1, которая отображает содержимое таблицы. На другой форме я...

Обновить DataGridView после внесения новых данных
Здравствуйте! Пожалуйста, помогите. У меня есть xml-файл с БД. на основной форме у меня идет отображение данных в таблице DataGridView...

Как обновить datagridview после добавления записи?
Как можно обновить datagridview после добавленич записи? string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru