Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/62: Рейтинг темы: голосов - 62, средняя оценка - 4.63
dilec
14 / 14 / 7
Регистрация: 23.11.2009
Сообщений: 63
1

Обновление базы данных после редактирования в dataGridView.

09.06.2011, 17:11. Просмотров 11192. Ответов 5
Метки нет (Все метки)

Обновление базы данных после редактирования в dataGridView.

Первая кнопка вытаскивает все столбцы таблицы item в dataGridView3, здесь всё нормально
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
        private void button7_Click(object sender, EventArgs e)
        {
            string CommandText = "SELECT * FROM item";
            string Connect = "Database=1;Data Source=localhost;User Id=1;Password=1; CharSet=utf8 ";
            MySqlConnection myConnection = new MySqlConnection(Connect);
            myConnection.Open();
            MySqlDataAdapter da1 = new MySqlDataAdapter(CommandText, myConnection);
            DataTable t = new DataTable();
            da1.Fill(t);
            dataGridView3.DataSource = t;
            myConnection.Close(); 
 
        }
После редактирую, допустим, любую ячейку dataGridView3 и пытаюсь сохранить.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        private void button8_Click(object sender, EventArgs e)
        {
            string Connect = "Database=1;Data Source=localhost;User Id=1;Password=1; CharSet=utf8 ";
            MySqlConnection myConnection = new MySqlConnection(Connect);
            myConnection.Open(); //Устанавливаем соединение с базой данных.
            MySqlDataAdapter da1 = new MySqlDataAdapter();
            MySqlCommandBuilder cmdBuilder = new MySqlCommandBuilder(da1);
            //MySqlCommand comand = new MySqlCommand("UPDATE  item SET i=1);
            // da1.UpdateCommand = comand;
            da1.UpdateCommand = cmdBuilder.GetUpdateCommand();
 
            da1.Update((DataTable)dataGridView3.DataSource);
            myConnection.Close();
 
        }
Вот здесь возникает проблема, я не могу понять есть ли способ автоматически сохранять изменённые ячейки, причём изменённые в разных строках и столбцах.

В данном коде я закомментировал второй вариант, который работает, но там я указываю конкретные изменения, а не автоматические.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2011, 17:11
Ответы с готовыми решениями:

DataGridView обновление данных в базе.
Возникла следующая проблема: есль база access есть динамический контрол datagridview заполняемый...

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

Обновление DataGridView после добавления данных в БД
На панели имеется DataGridView, необходимо после добавления в БД чтобы DataGridView обновлялся...

Обновление DataGridView после добавления данных в БД
Здравствуйте, подскажите пожалуйста когда добавляю данные в БД в DataGrid данные не обновляются,...

Update после редактирования в DataGridView
После редактирования ячейки DataGridView и перехода в другую строку работает код обработчика...

5
windzzor
59 / 59 / 13
Регистрация: 23.04.2011
Сообщений: 110
09.06.2011, 18:53 2
если я правильно вас понял, то можно сделать так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 public partial class Form1 : Form
    {
 
        SqlDataAdapter adapter;
 
        public Form1()
        {
            InitializeComponent();
            string connection = @"Data Source=.\SQLEXPRESS;AttachDbFilename=F:\Documents\Visual.Studio.Projects\Visual.C#.2008\MediaShopDataBase\MediaShop.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
            string command = "Select * From Items";
            adapter = new SqlDataAdapter(command, connection);
            SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
            DataTable dt = new DataTable();
            adapter.Fill(dt);
            dataGridView1.DataSource = dt;
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            adapter.Update((DataTable)dataGridView1.DataSource);//обновляет БД
        }
 
    }
1
dilec
14 / 14 / 7
Регистрация: 23.11.2009
Сообщений: 63
09.06.2011, 19:24  [ТС] 3
попробовал ваш вариант у меня вылазит ошибка
Ссылка на объект не указывает на экземпляр объекта.
0
windzzor
59 / 59 / 13
Регистрация: 23.04.2011
Сообщений: 110
09.06.2011, 19:58 4
Где-то используется объект с null-ссылкой.
Нужен код, чтобы найти ошибку...
0
Ursus Arctos
6 / 6 / 2
Регистрация: 09.06.2011
Сообщений: 13
10.06.2011, 00:37 5
А где dataGridView1 объявляется?

Использоваться используется, а нигде не объявляется.
0
dilec
14 / 14 / 7
Регистрация: 23.11.2009
Сообщений: 63
10.06.2011, 08:33  [ТС] 6
нашол ошибку

я ставил
C#
1
MySqlDataAdapter adapter = new MySqlDataAdapter(command, connection);
а надо
C#
1
adapter = new MySqlDataAdapter(command, connection);
0
10.06.2011, 08:33
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.06.2011, 08:33

Обновление таблиц базы в полях выбора DataGridView
Может не совсем понятно назвал тему. лучше покажу. Вот у меня есть БД с таблицами: И почему-то...

Обновление MySQL базы через datagridView, нарушение параллелизма
Иммется подключение к БД mysql, с помощью этой кнопки получаю результаты. Все ок. ...

После редактирования данных в БД, данные на форме обновляются только после перезапуска программы
Добрый день! Прошу помощи. Пишу программу Form1 работает с полями из БД MS Sql LocalDB, Form2 -...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.