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

Как добавлять и редактировать данные в DataGridView?

26.05.2023, 22:04. Показов 422. Ответов 1
Метки c# (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, прошу советов людей которые хорошо разбираются в C#. Есть база данных MySql с WEB интерфейсом phpMyAdmin.
В WindowsForm размещен объект DataGridView к которому подтягивается MySql. И я не могу понять как подключить к форме кнопки "Insert" "Delete" "Edit" "Add". У меня есть код моей программы и что нужно исправить и подкорректировать в ней?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
       private void LoadDataPokupka()
        {
            // Открытие соединения с базой данных
            dbstart.openConnection();
 
            try
            {
                // Создание команды для выполнения запроса SELECT
                MySqlCommand cmd = new MySqlCommand("SELECT id AS Номер, name AS Имя, surname AS Фамилия, otsestvo AS Отчество, tovar AS Товар, kolisestvo AS Количество, sena AS Цена FROM pokupka", dbstart.getConnection());
 
                // Создание объекта DataTable для хранения данных
                DataTable table = new DataTable();
 
                // Создание адаптера данных и заполнение таблицы
                using (MySqlDataAdapter adapter = new MySqlDataAdapter(cmd))
                {
                    adapter.Fill(table);
                }
 
                // Привязка таблицы к DataGridView для отображения данных
                dataGridView5.DataSource = table;
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ошибка при загрузке данных: " + ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                // Закрытие соединения с базой данных
                dbstart.closeConnection();
            }
        }
 
        private void add_button_Click(object sender, EventArgs e)
        {
            dataGridView5.ReadOnly = false;
            save_button.Enabled = true;
            add_button.Enabled = false;
            del_button.Enabled = false;
        }
 
        private void save_button_Click(object sender, EventArgs e)
        {
            dataGridView5.ReadOnly = true;
            save_button.Enabled = false;
            add_button.Enabled = true;
            del_button.Enabled = true;
            edit_button.Enabled = true;
        }
 
        private void del_button_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Do you want to delete this row ?", "Delete", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                dataGridView1.Rows.RemoveAt(dataGridView1.SelectedRows[0].Index);
                sAdapter.Update(sTable);
            }
        }
 
        private void edit_button_Click(object sender, EventArgs e)
        {
            edit_button.Enabled = false;
            save_button.Enabled = true;
            dataGridView5.ReadOnly = false;
        }
 
 
        //--------------------------------------------------------------------
        //--------------------------------------------------------------------
        //--------------------------------------------------------------------
    }

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
    internal class DBSTART
    {
 
 
        MySqlConnection connection = new MySqlConnection("server=localhost;port=3306;username=root;password=root;database=login_and_password;");
        
 
        public void openConnection()
        {
            if (connection.State == System.Data.ConnectionState.Closed)
                connection.Open();
        }
 
 
 
        public void closeConnection()
        {
            if (connection.State == System.Data.ConnectionState.Open)
                connection.Close();
        }
 
        public MySqlConnection getConnection()
        {
            return connection;
        }
    }
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.05.2023, 22:04
Ответы с готовыми решениями:

DataGridView как запретить редактировать содержимое строк (уже созданих) но иметь возможность добавлять строки
Вообщем по названию все понятно думаю есть БД подключенная к DataGrid, грид отображает строки которые содержит БД, нужно сделать так чтоб...

Как из формы, редактировать dataGridView данные текстового файла, из которого и выводятся dataGridView строки в форму?
Есть программа, которая читая данные из текстового файла "данные.cfg" , выводит их в строки dataGridvView. Допустим в файле...

Как редактировать данные через DataGridView
Всем привет. кто может подсказать как редактировать данные через DataGridView???

1
2287 / 1603 / 400
Регистрация: 26.06.2017
Сообщений: 4,748
Записей в блоге: 1
27.05.2023, 09:12
Лучший ответ Сообщение было отмечено Rom4ik6 как решение

Решение

Что-то типа того.
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
  DataTable table;
  MySqlDataAdapter adapter;
 
       private void LoadDataPokupka()
        {
            // Открытие соединения с базой данных
            dbstart.openConnection();
 
            try
            {
                // Создание команды для выполнения запроса SELECT
                MySqlCommand cmd = new MySqlCommand("SELECT id AS Номер, name AS Имя, surname AS Фамилия, otsestvo AS Отчество, tovar AS Товар, kolisestvo AS Количество, sena AS Цена FROM pokupka", dbstart.getConnection());
 
                // Создание объекта DataTable для хранения данных
                table = new DataTable();
 
 
                // Создание адаптера данных и заполнение таблицы
                adapter = new MySqlDataAdapter(cmd);
   MySqlCommandBuilder cb = new MySqlCommandBuilder(adapter);
                adapter.Fill(table);
 
                // Привязка таблицы к DataGridView для отображения данных
                dataGridView5.DataSource = table;
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ошибка при загрузке данных: " + ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                // Закрытие соединения с базой данных
                dbstart.closeConnection();
            }
        }
 
        private void add_button_Click(object sender, EventArgs e)
        {
            dataGridView5.ReadOnly = false;
            save_button.Enabled = true;
            add_button.Enabled = false;
            del_button.Enabled = false;
  DataRow dr = table.NewRow();
  // тут заполнение строки dr на основе каких-то контролов
  table.Rows.Add(dr);
        }
 
        private void save_button_Click(object sender, EventArgs e)
        {
            dataGridView5.ReadOnly = true;
            save_button.Enabled = false;
            add_button.Enabled = true;
            del_button.Enabled = true;
            edit_button.Enabled = true;
 
            try
            {
  dbstart.openConnection();
                adapter.Update(table);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ошибка при обновлении данных: " + ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                // Закрытие соединения с базой данных
                dbstart.closeConnection();
            }
        }
 
        private void del_button_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Do you want to delete this row ?", "Delete", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                dataGridView1.Rows.RemoveAt(dataGridView1.SelectedRows[0].Index);
            }
        }
 
        private void edit_button_Click(object sender, EventArgs e)
        {
            edit_button.Enabled = false;
            save_button.Enabled = true;
            dataGridView5.ReadOnly = false;
            DataRowView currentDataRowView = (DataRowView)dataGridView1.CurrentRow.DataBoundItem;
            DataRow dr = currentDataRowView.Row;
  // тут заполнение каких-то контролов на основе строки dr 
        }
    }

Замечу, что при привязке данных к сетке изменять/удалять/добавлять данные можно прямо в сетке.

Не по теме:

Код не проверен, могут быть ошибки.

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

Как правильно извлекать и добавлять данные с DataGridView?
Доброго времени суток, вообщем нужна ваша помощь. Почему выводяться к примеру такие ошибки: Ошибка 25 error LNK1169: юсэрЁєцхэ...

Написать класс, в котором можно удалять, добавлять и редактировать данные
Люди помогите написать программу, очень нужно!!! Буду очень благодарен........ 1. Написать класс "Спортивные соревнования", в...

Не могу редактировать данные в DataGridView
Приветствую всех! В этом деле новичок, искренне жду помощи) У меня есть приложение, в ней DataGridView выводит данные, из отдельного окна...

Подскажите как вставить данные из Datagridview в ListBox, и добавлять в столбец выбранный элемент из listbox
подскажите как вставить данные из Datagridview в ListBox, и добавлять в столбец выбранный элемент из listbox У меня есть в форме listBox...

Как из блокнота (txt) открыть данные и занести в таблицу dataGridView, редактировать и снова сохранить в txt
Нужно чтобы при нажатии кнопки открывалось окно выбора текст фаила, и данные из этого фаила попадали в dataGridView, после...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru