|
|
|
| Небольшое отступление от темы... Начал читать книжку по Visula Basic и наткнулся на разьяснения по поводу взаимодействия приложений с БД. Поэтому опять решил оставить в стороне Visual Basic и дописать приложение на Visual C.
А вот вопросы:
1) Нужно каким-то образом обновлять данные в базе через форму. Т.е. допустим, есть клиент, для редактирования данных в базе. Показывать-то он их показывает (данные), а вот как изменять? Как добавить строку в таблицу я знаю. Но ни как не могу ОБНОВИТЬ данные в базе. Как это делается на Visual C? Использую базу SQL.
Спасибо. | |
|
|
|
|
|
|
|
для: EvgenLog
(12.02.2007 в 22:59)
| | > Как добавить строку в таблицу я знаю.
Вместо оператора INSERT используйте оператор UPDATE, который обновляет данные. | |
|
|
|
|
|
|
|
для: 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 должны скопироваться в базу и закрепиться там. Но этого не происходит почему-то. | |
|
|
|
|
|
|
|
для: EvgenLog
(13.02.2007 в 14:27)
| | Объект rynok_info_DataSet у вас глобальный? От виден из метода button3_Click()? | |
|
|
|
|
|
|
|
для: 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
(13.02.2007 в 16:50)
| | Я вот подумал. А может у меня версия сервера не полная? Во первых он назвается SQLEXPRESS. Во-вторых у ЭТОЙ версии нет настроек, нет возможности создавать новые базы данных через спец. интерфейс, вообще нет никаких утилит с ним. Может быть он просто для просмотра предназначен, потому и не сохраняются данные? Хотя это очень сомнительно... Но код всё равно посмотрите пожалуйста и если можно проверьте на работоспособность у себя. Очень надо. Спасибо. | |
|
|
|