Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.04.2016, 20:08   #1
Zyf21
Новичок
Джуниор
 
Регистрация: 30.04.2016
Сообщений: 4
По умолчанию Сохранение данных в dataGridView

Здравствуйте. Имеется dataGridView в которую выводятся данные с БД. После взаимодействия с ячейками нужно сохранить все данные обратно в базу. Пробывал с UpdateCommand, но почему-то не работает.

Код:
   adapter.UpdateCommand = new SqlCommand("UPDATE Object_work SET Number_flights = @Number_flights WHERE ID_Object_work = @ID_Object_work", cn);
            adapter.UpdateCommand.Parameters.Add("@Number_flights", SqlDbType.Int, 5, "Number_flights");
            SqlParameter parameter = adapter.UpdateCommand.Parameters.Add("@ID_Object_work", SqlDbType.Int);
            parameter.SourceColumn = "ID_Object_work";
            parameter.SourceVersion = DataRowVersion.Original;
         
            try
            {
                adapter.Update(ds.Tables[0]);
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
Zyf21 вне форума Ответить с цитированием
Старый 01.05.2016, 13:38   #2
fanat_96
Пользователь
 
Регистрация: 09.04.2016
Сообщений: 81
По умолчанию

Я делал обновление в БД с помощью отображения инфы из ячеек в текстбоксах, а затем передавал содержимое этих текстбоксов через параметры обратно.
Код:
OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=имя базы");
conn.Open();
OleDbCommand comm = new OleDbCommand();

comm.CommandText = "UPDATE ИмяТаблицы SET поле1 = @параметр1, поле2 = @параметр2, ... WHERE полеКлюч = @параметрКлюч";
comm.Parameters.Add("@параметр1", SqlDbType.ТипПараметра1);
comm.Parameters["@параметр1"].Value = Convert.ToТипПараметра1(textBox1.text);
comm.Parameters.Add("@параметр2", SqlDbType.ТипПараметра2);
comm.Parameters["@параметр2"].Value = Convert.ToТипПараметра2(textBox2.text);
//...
comm.Parameters.Add("@параметрКлюч", SqlDbType.ТипКлючПараметра);
comm.Parameters["@параметрКлюч"].Value = Convert.ToТипКлючПараметра(textBoxN.text);
comm.Connection = conn;
comm.ExecuteNonQuery();
conn.Close();
fanat_96 вне форума Ответить с цитированием
Старый 01.05.2016, 16:44   #3
Zyf21
Новичок
Джуниор
 
Регистрация: 30.04.2016
Сообщений: 4
По умолчанию

fanat_96 , думаю ваше решение не очень рациональное и не совсем мне подходит.
Zyf21 вне форума Ответить с цитированием
Старый 01.05.2016, 16:58   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

почему то не работает это выбивает ошибку или не обновляет?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 01.05.2016, 17:12   #5
Zyf21
Новичок
Джуниор
 
Регистрация: 30.04.2016
Сообщений: 4
По умолчанию

Не обновляет. А если попробывать добавить что то в 2 ячейки по очереди то выдает ошибку.
Изображения
Тип файла: png Снимоеееек.PNG (3.4 Кб, 108 просмотров)
Zyf21 вне форума Ответить с цитированием
Старый 01.05.2016, 18:00   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

почему бы не воспользоваться SqlCommandBuilder и позволить ему построить команды на обновление и на удаление?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 01.05.2016, 18:12   #7
Zyf21
Новичок
Джуниор
 
Регистрация: 30.04.2016
Сообщений: 4
По умолчанию

Пробывал.В моем случае это не работает, так как SqlCommandBuilder работает только когда выводится 1 таблица, а у меня sql запрос состоит из связывания нескольких таблиц.
Zyf21 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранение измененных данных в datagridview после повторного запуска mdiChild-окна программы с этим же dgv zzyika Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 1 27.02.2015 04:49
datagridview сохранение Petar)7 C# (си шарп) 0 21.11.2013 00:50
Сохранение dataGridView в файл men232 Windows Forms 8 21.05.2013 14:16
Сохранение datagridview nicotine8 Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 1 15.03.2012 08:11
Сохранение в dataGridView Cpluser Общие вопросы .NET 10 16.11.2009 11:46