Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Сохранение данных из DataGridView в базу / 9 сообщений из 9, страница 1 из 1
28.10.2010, 16:48
    #36926175
astatsa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение данных из DataGridView в базу
Привет всем!
Я пытаюсь обновлять данные в базе после изменения ячейки DataGridView, т.е. в событии CellEndEdit. Проблема в том что вот такой код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
        private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            this.BindingContext[(DataTable)dataGridView1.DataSource].EndCurrentEdit();
            DataTable dt = ((DataTable)dataGridView1.DataSource).GetChanges();
            if (dt != null)
            {
                main_da.Update((DataTable)dataGridView1.DataSource);
                /*((DataTable)dataGridView1.DataSource).Clear();
                main_da.Fill((DataTable)dataGridView1.DataSource);*/
                ((DataTable)dataGridView1.DataSource).AcceptChanges();
            }
        }
выдает эксепшн "Нарушение параллелизма UpdateCommand затронула 0 из 1 записей".
Что может быть не так, подскажите. Заранее спасибо!
...
Рейтинг: 0 / 0
29.10.2010, 09:27
    #36927073
astatsa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение данных из DataGridView в базу
Разобрался почему так происходит, при добавлении строки генерится ключ, но его естественно нет в DataTable. Видимо надо при добавлении строки делать Fill. Но почему то когда я делаю main_da.Fill(DataTable), в DataTable дублируются строки. Почему так происходит, ведь метод Fill должен просматривать ключевое поле и изменять а не добавлять строки.
...
Рейтинг: 0 / 0
29.10.2010, 10:47
    #36927226
astatsa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение данных из DataGridView в базу
Я ничего не понимаю. Нужен первичный ключ, физически он есть, а как мне commandbuilder'у сказать что он там есть, я думал он сам должен понять это.
...
Рейтинг: 0 / 0
01.11.2010, 01:42
    #36930300
m4igor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение данных из DataGridView в базу
а можете показать как у Вас описан main_da ?
...
Рейтинг: 0 / 0
01.11.2010, 13:36
    #36931001
astatsa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение данных из DataGridView в базу
m4igor,
Код: plaintext
1.
2.
3.
4.
5.
main_da = new SqlDataAdapter("select id,* from " + rdt.Rows[0]["ref_table"].ToString(), Properties.Settings.Default.masterConnectionString);
SqlCommandBuilder cb = new SqlCommandBuilder(main_da);
main_da.InsertCommand = cb.GetInsertCommand();
main_da.DeleteCommand = cb.GetDeleteCommand();
main_da.UpdateCommand = cb.GetUpdateCommand();
Вообще мне нужно реализовать добавление записей в справочник. А для этого мне нужно записывать в базу данные каждый раз после изменения, добавления или удаления. Может есть какой-то другой вариант?
Спасибо что откликнулись!
...
Рейтинг: 0 / 0
02.11.2010, 03:00
    #36932604
m4igor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение данных из DataGridView в базу
astatsa,

а перед этим еще нужно что-то делать в конструкторе или конфигураторе каком-нить?
...
Рейтинг: 0 / 0
02.11.2010, 09:29
    #36932771
astatsa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение данных из DataGridView в базу
m4igor,
Добавляешь на форму датагрид. Добавляешь датасет. В датасете создаешь датаадаптер (указываешь подключение, пишешь запрос). В датагриде указываешь источник данных (созданный дататэйбл). Добавляешь кнопочку, например, в обработчике события (клик на кнопку) пишешь датаадаптер (его можно увидеть, например, в формлоаде, он там заполняет дататэйбл) ставишь точку и Update(указываешь табличку).
...
Рейтинг: 0 / 0
03.11.2010, 10:14
    #36935372
m4igor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение данных из DataGridView в базу
astatsa,

указываю таблицу и ничего не обновляется
наверное нужно прописать правильно UpdateCommand
...
Рейтинг: 0 / 0
03.11.2010, 11:20
    #36935557
astatsa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение данных из DataGridView в базу
m4igor,

Наверное надо.
Если ты создавал датасет визуальными средствами студии, она должна была сгенерить запрос вставки, обновления и удаления по твоему селекту. Посмотри в редакторе датасета, тэйбладаптер там есть InsertCommand, UpdateCommand и DeleteCommand. И еще, покажи запрос.
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Сохранение данных из DataGridView в базу / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]