Программирование - это просто
Advertisement
Главная arrow C#, Delphi, VB, F#, Web и пр. arrow Уроки C# arrow Работа с базами данных на C#. arrow Работа с базами данных на C#. Урок 3. Сохранение данных.
15.12.2017 г.
Главное меню
Главная
Системный подход
Интернет магазин
Биржевые роботы
Программные продукты
Математика и информатика
1С:Предприятие
C#, Delphi, VB, F#, Web и пр.
Искусственный интеллект
Услуги
Ча. Во. (FAQ)
Платный раздел
Наука для чайников
Разное
Размышления
Карта сайта
Друзья сайта
Excel-это не сложно
Все о финансах
Работа с базами данных на C#. Урок 3. Сохранение данных. Печать E-mail
Автор megabax   
10.03.2012 г.
New Page 1

Работа с базами данных на C#. Урок 3. Сохранение данных.

 

На прошлом уроке мы подключили к проекту на Visual Studio 2010 базу данных SQL. Но наша программа пока еще не умеет сохранять данные. Вот давайте и научим ее этому. Для начала просто добавим к проекту, созданному на прошлом уроке, кнопочку "Сохранить":

Работа с базами данных на C#. Урок 3. Сохранение данных.

В обработчике нажатия на эту кнопку у нас будет всего лишь одна строка:

        private void button1_Click(object sender, EventArgs e)

        {

            waresTableAdapter.Update(myBaseDataSet);

        }

Правда, у нас тут возник недочет: кнопочка "Сохранить работает" только если мы добавляем новые строки. А вот стоит только добавить новую строку, у нас программа вываливается по исключению "Для обновления требуется действительный UpdateCommand при передаче коллекции DataRow с измененными строками":

Работа с базами данных на C#. Урок 3. Сохранение данных.

Что бы исправить этот недочет, необходимо задать у адаптера данных UpdateCommand. Вот пример кода:

   private void button1_Click(object sender, EventArgs e)

       {

            SqlCeCommand command = new SqlCeCommand(

                "UPDATE wares SET ID = @ID, Name = @Name, Price=@Price "+

                "WHERE (ID = @ID)");

            command.Connection = waresTableAdapter.Connection;

            waresTableAdapter.Adapter.UpdateCommand = command;

 

            SqlCeParameter parametr;

 

            //Параметр ID

            parametr = new SqlCeParameter("@ID", SqlDbType.Int);

            parametr.SourceColumn = "ID";

            command.Parameters.Add(parametr);

 

            //Параметр Name

            parametr = new SqlCeParameter("@Name", DbType.String);

            parametr.SourceColumn = "Name";

            command.Parameters.Add(parametr);

 

            //Параметр Price

            parametr = new SqlCeParameter("@Price", SqlDbType.Float);

            parametr.SourceColumn = "Price";

            command.Parameters.Add(parametr);

 

            waresTableAdapter.Update(myBaseDataSet.Wares);

        }

Теперь мы можем корректно редактировать наименование товара и цену. Единственно, мы не можем редактировать поле ID и должны заводить его вручную при добавлении новой строки, к тому же, ID должен быть уникальным:

Работа с базами данных на C#. Урок 3. Сохранение данных.

Но эту проблему мы будем решать уже в будущих уроках.


Приведенные в статье скриншоты, являются цитатами и иллюстрациями  программного продукта "Microsoft Visual Studio 2010 Professional", авторское право на который принадлежит корпорации Microsoft.. 


 

 

 

 

 

 

 

 

 

 

 

 

 

Последнее обновление ( 24.02.2016 г. )
 
« След.   Пред. »
 
© 2017 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги
Мы принимаем
Банковские карты
Оплатите покупку в интернет-магазине банковскими картами VISA и Mastercard любого банка.
узнать больше
Электронный кошелек
Моментальная оплата покупок с помощью вашего электронного кошелька RBK Money.
узнать больше
Банковский платеж
Оплатите покупку в любом российском банке. Срок зачисления средств на счет - 3-5 рабочих дней.
узнать больше
Денежные переводы
Оплата покупок через крупнейшие системы денежных переводов CONTACT и Unistream.
узнать больше
Почтовые переводы
Оплатите покупку в любом отделении Почты России. Срок зачисления платежа - 3-4 рабочих дня.
узнать больше
Платежные терминалы
Оплата покупок в терминалах крупнейших платежных систем в любом городе России - быстро и без комиссии.
узнать больше