![]() |
Добавление записей в таблицу БД
Доброго времени суток. Прошу помощи по ASP.NET.(Пишу на С#) Есть БД в которой создана таблица Questions и Answers. В таблице три поля QuestionID, Otvetuser, Otvetadmin. Мне нужно записать в поле Otvetuser строку например из Textbox, а потом сравнить её с строкой из поля Otvetadmin(строка в поле Otvetadmin была создана зарание) При совпадении строк в двух полях перезаписать например "ответ правильный" в талицу Answers. В С# я новичок. Как это можно реализовать. Весь гугл перелазил, нашол примеры но не один из них не работает коректно.
|
маловато данных для корректного ответа. Когда должна проводиться проверка? После того как занесли в БД данные?
Что не получается реализовать, синтаксис SQL запроса, или же отправка данных на сервер? Подробней опиши задачу, отвечу, задача простейшая. |
|
Цитата:
|
Delirium, Вот вставка только она не работает почемуто :( :(
Dim newNameRow As DataRow = DataSet1.Tables("Regis").NewRow() newNameRow("Name") = Name.Text DataSet1.RegisDataTable("Regis").Rows.Add(newNameRow) |
Так ты вставляешь в DataSet данные, а не в базу. Чего бы ради она вставляла в базу то? Тебе надо организовывать соединение с SQL сервером, и вставлять данные через текст SQL или через заранее написанную хранимую процедуру. Что то в таком духе:
Код:
SqlCommand cmd = new SqlCommand(); |
Delirium, Спасибо. Попробую отпишусь
|
Вложений: 1
Delirium,
protected void Button1_Click(object sender, EventArgs e) { SqlCommand cmd = new SqlCommand(); SqlConnection conn = new SqlConnection(); SqlDataAdapter sqlDA; cmd.CommandText = "insert into table (Regis) values (' " + name.Text + "')"; conn = new SqlConnection("data source=.\\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\\Database.mdf;User Instance=true"); sqlDA = new SqlDataAdapter(cmd); sqlDA.SelectCommand.Connection = conn; conn.Open(); cmd.ExecuteNonQuery(); } } При нажатии на button в браузере выкидывает ошибку. Посмотри скрин пожалуйста |
Alex.sys, сам разобрался? :) Не надо в Insert писать слово table, вместо него - имя таблицы, а в скобках - поля, в которые заносим данные, через запятую.
т.е. если таблица зовется Employee, а поле в ней - FIO, то и пишем Код:
insert into Employee (FIO) values ('Иванов') |
Delirium, Все вроде работает, спасибо. Только как вместо Иванова привинтить textbox. Что б фамилию сначало надо было ввести в него, и при нажатии на кнопку запись заносилась в поле таблицы из textbox
protected void Button1_Click(object sender, EventArgs e) { SqlCommand cmd = new SqlCommand(); SqlConnection conn = new SqlConnection(); SqlDataAdapter sqlDA; cmd.CommandText = "insert into Tab (FIO) values ('Иванов')"; conn = new SqlConnection("data source=.\\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\\Database.mdf;User Instance=true"); sqlDA = new SqlDataAdapter(cmd); sqlDA.SelectCommand.Connection = conn; conn.Open(); cmd.ExecuteNonQuery(); } } Пробывал так cmd.CommandText = "insert into Tab (FIO) values ('+fio.text+')"; Только всеравно заносится как текст +fio.text+. Как можно это сделать? Delirium, Спасибо вам большое разобрался!!! Удачи, здоровья, творческих успехов. Тему можно закривать |
Ну вот и чудненько :)
Рекомендую только такие вещи делать по другому. Создается хранимая процедура в SQL, которая принимает параметр - ФИО. Добавляется эта процедура в DataSet, и потом просто вызывается эта процедура с параметром. Таким образом гораздо проще будет - не надо писать портянку соединения с SQL каждый раз и отладка будет гораздо проще. Приведу пример. Вставляем в DataSet процедуру. Просто перетаскиваем ее из дерева подключений. Назовем адаптер, к примеру, KtsDocDataSetTableAdapters . В коде программы пишем объявление процедуры: и далее просто указываем функцию: Код:
KtsDocDataSetTableAdapters.StoredProceduresAdapter ad = new KtsDocDataSetTableAdapters.StoredProceduresAdapter(); |
Время: 08:54. |
Время: 08:54.
© OSzone.net 2001-