Форум: Форум C++Разное
Новые темы: 00
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Обновление данных в базе Visual C.
 
 автор: EvgenLog   (12.02.2007 в 22:59)   письмо автору
 
 

Небольшое отступление от темы... Начал читать книжку по Visula Basic и наткнулся на разьяснения по поводу взаимодействия приложений с БД. Поэтому опять решил оставить в стороне Visual Basic и дописать приложение на Visual C.

А вот вопросы:
1) Нужно каким-то образом обновлять данные в базе через форму. Т.е. допустим, есть клиент, для редактирования данных в базе. Показывать-то он их показывает (данные), а вот как изменять? Как добавить строку в таблицу я знаю. Но ни как не могу ОБНОВИТЬ данные в базе. Как это делается на Visual C? Использую базу SQL.

Спасибо.

  Ответить  
 
 автор: cheops   (13.02.2007 в 13:37)   письмо автору
 
   для: EvgenLog   (12.02.2007 в 22:59)
 

> Как добавить строку в таблицу я знаю.
Вместо оператора INSERT используйте оператор UPDATE, который обновляет данные.

  Ответить  
 
 автор: EvgenLog   (13.02.2007 в 14:27)   письмо автору
 
   для: cheops   (13.02.2007 в 13:37)
 

А где его использовать? Дело в том, что данные добавляются в DtaSet, но не копируются в базу. Это особенность .NET. В предыдущих версиях при добавление или изменение данных в форме (допустим в texBox данные также обновлялись и в базе. Теперь же для этого нужно использовать специальную команду типа Update, но она работает только на VisualBasiс. В Visual C это не получается.

Вот что я пытаюсь делать...

.
.
.
private void button1_Click(object sender, EventArgs e)
        {
            //при нажатии на кнопку добавлять строку в таблицу AddtblActkind_1
            string AddStr;
            AddStr = textBox1.Text;
            rynok_info_DataSet.tblActkind_1.AddtblActkind_1Row(AddStr);
        }

private void button3_Click(object sender, EventArgs e)
        {
            //при нажатии на кнопку выполнять следубщие действия
            this.tblActkind_1TableAdapter.Update(rynok_info_DataSet);
        }
.
.
.


Я так понимаю, после этого данные из памяти rynok_info_DataSet должны скопироваться в базу и закрепиться там. Но этого не происходит почему-то.

  Ответить  
 
 автор: cheops   (13.02.2007 в 16:46)   письмо автору
 
   для: EvgenLog   (13.02.2007 в 14:27)
 

Объект rynok_info_DataSet у вас глобальный? От виден из метода button3_Click()?

  Ответить  
 
 автор: EvgenLog   (13.02.2007 в 16:50)   письмо автору
 
   для: cheops   (13.02.2007 в 16:46)
 

Думаю, что глобальный.Т.к. виден не только из этого метода, но и из всех остальных. Я вот думаю, что лучше использовать другой способ, а именно обращаться к серверу напрямую.
Вот так я пытаюсь ТЕПЕРЬ добавить новую строку в таблицу, но почему-то ничего не происходит. Нет не ошибок, не предупреждений, также как и новых данных в базе.


private void button1_Click(object sender, EventArgs e)
        {
            string AddStr;
            AddStr = textBox1.Text;
            string ConnectionString;                
            ConnectionString = Manager.Properties.Settings.Default.rynok_info_ConnectionString;
                
            SqlConnection myConnection = new SqlConnection(ConnectionString);                
            myConnection.Open();

            SqlCommand myCommand = new SqlCommand("INSERT INTO dbo.tblActKind_1 (string) VALUES ('"+ AddStr +"')", myConnection);
                
            myCommand.ExecuteNonQuery();
            myConnection.Close();
        }


Может быть подключение не проходит? Как это проверить? Или здесть в другом проблема?

  Ответить  
 
 автор: EvgenLog   (14.02.2007 в 17:30)   письмо автору
 
   для: EvgenLog   (13.02.2007 в 16:50)
 

Я вот подумал. А может у меня версия сервера не полная? Во первых он назвается SQLEXPRESS. Во-вторых у ЭТОЙ версии нет настроек, нет возможности создавать новые базы данных через спец. интерфейс, вообще нет никаких утилит с ним. Может быть он просто для просмотра предназначен, потому и не сохраняются данные? Хотя это очень сомнительно... Но код всё равно посмотрите пожалуйста и если можно проверьте на работоспособность у себя. Очень надо. Спасибо.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования