0 / 0 / 0
Регистрация: 05.01.2013
Сообщений: 14
1

Не могу обновить gridview после обновления таблицы mysql

18.05.2013, 08:29. Показов 1084. Ответов 0
Метки нет (Все метки)

Загружаю данные из базы в gridview

C#
1
2
3
4
5
6
7
DataSet dataset = new DataSet();
            dataset = MysqlProvider.FillGrid();
 
            BindingSource bindingSorce = new BindingSource();
            bindingSorce.DataSource = dataset.Tables[0];
 
            gridControl1.DataSource = bindingSorce;
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
  public static DataSet FillGrid()
        {
            MySqlConnection newConnection = new MySqlConnection(_connectionString);
            try
            {
                DataSet dataset = new DataSet();
                newConnection.Open();
                if (newConnection.State.ToString() == "Open")
                {
                    MySqlCommand cmd = new MySqlCommand();
                    cmd.Connection = newConnection;
                    cmd.CommandText = "SELECT * FROM main";
                    MySqlDataAdapter adapter = new MySqlDataAdapter(cmd);
                    adapter.Fill(dataset);
                }
                else
                {
                    return null;
                }
                newConnection.Close();
                return dataset;
            }
            catch { return null; }
        }
До этого момента все проходит отлично и данные корректно отображаются в gridview

Далее предполагается, что пользователь меняет например содержимое какой-либо ячейки gridview и соответственно данные нужно сохранить обратно в базу. Использую для этого событие RowUpdated

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
 try
            {
                BindingSource bs = (BindingSource)gridView1.DataSource;
                DataTable changes = ((DataTable)bs.DataSource).GetChanges();
 
                if (changes != null)
                {
                    MysqlProvider.UpdateGrid(changes);
                    ((DataTable)((BindingSource)gridView1.DataSource).DataSource).AcceptChanges();
                }
 
            }
            catch { }
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    newConnection.Open();
                if (newConnection.State.ToString() == "Open")
                {
                    MySqlCommand cmd = new MySqlCommand();
                    cmd.Connection = newConnection;
                    cmd.CommandText = "SELECT * FROM main";
                    MySqlDataAdapter adapter = new MySqlDataAdapter(cmd);
                    MySqlCommandBuilder cmb = new MySqlCommandBuilder(adapter);
                    adapter.UpdateCommand = cmb.GetUpdateCommand();
                    adapter.Update(datatable);
                }
                else
                {
                    return false;
                }
                newConnection.Close();
                return true;

Этот код тоже выполнился и данные в базе обновились, но теперь невозможно обновить гридвью

C#
1
2
3
4
5
6
7
DataSet dataset = new DataSet();
           dataset = MysqlProvider.FillGrid();
 
            BindingSource bindingSorce = new BindingSource();
           bindingSorce.DataSource = dataset.Tables[0];
 
           gridControl1.DataSource = bindingSorce;
После вышепреведенного кода(точно такой же я использовал в самом начале) все содержимое гридвью вообще пропадает. Методом проб заметил, что если если событие Row_Updated не вызывалось, то все отлично работает. Даже достаточно закомментить строчку adapter.UpdateCommand = cmb.GetUpdateCommand(); в UpdateGrid() чтобы все заработало. Подскажите где может быть ошибка.

В крайнем случае буду признателен если покажите другой способ обновления базы через Datable, который не будет так сильно влиять на последующий события
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.05.2013, 08:29
Ответы с готовыми решениями:

После обновления FreeBSD 11.0 не могу обновить pkg - No route to host
Запускаю Получаю дёргаю этот файл руками wget...

Обновить таблицу "Материалы" после обновления таблицы "Поступление"
Подскажите пожалуйста, не совсем понимаю как сделать. У меня имеется 3 таблицы в бд (Материал,...

Как обновить GridView после изменения SELECT в SqlDataSource?
Здравствуйте. Работаю с компонентом GridView, связанным с SQLDataSource. В SQLDataSource свойство...

Как обновить textview в фрагменте после обновления preference
Вечер добрый. В общем потратил весь день что бы разобраться с этим вопросом, но все безуспешно....

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.05.2013, 08:29
Помогаю со студенческими работами здесь

Не могу обновить Windows 8. (Не удалось настроить обновления). Через 5 часов на работу!
Доброго времени суток, форумчане! Помогите решить проблему, очень срочно, через 5 часов на...

Не могу обновить данные в MySql
добрый день скажите почему я не могу занести данные в mySql Если я вывел запрос в textBox и...

Perl+mysql обновить пароли таблицы
Задача сменить пароли почтовых адресов, пароли и почтовые адреса берутся из текстового файла. Код...

Php+MySql+Html. Обновить строку таблицы кнопкой.
Здравствуйте. Подскажите новичку. Нужно обновить значения определенной строки таблицы. Из поля...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru