Философ
Зарегистрирован: 29 September 2002
Сообщения: 554
Примеры кода: 1
|
RE: SqlDataAdapter |
09 January 2003 00:37 |
|
|
|
|
Вот такой код
this.sqlDataAdapter1.Fill(this.myDataSet1);
dataView1.AllowEdit = true;
dataView1[e.Item.ItemIndex].BeginEdit();
dataView1[e.Item.ItemIndex]["city_name"] = ((TextBox)e.Item.Cells[3].Controls[0]).Text;
dataView1[e.Item.ItemIndex].EndEdit();
this.DataGrid1.EditItemIndex=-1;
this.sqlDataAdapter1.Update(this.myDataSet1);
this.myDataSet1.AcceptChanges();
this.DataGrid1.DataBind();
bindDate();
Вылетает следующая ошибка
Procedure 'city_update' expects parameter '@Original_city_id', which was not supplied.
Почему вылетает я понимаю, но что предложите с этим сделать? Выкинуть этот параметр из хранимой процедуры вообще или заполнять его? Интересует больше второй вариант, и тогда подскажите как заполнять если кто знает?
И ещё, а стоит ли вообще доверять изменение записей в БД Адаптеру, или такие вещи стоит делать самому вручную, по одной записи с помощью SqlCommand?
Зарание благодарен за ответ;)
Можно определить значение параметра по умолчанию и тогда эта ошибка уйдет, например:
Create Procedure city_update
(
@Original_city_id int = NULL
)
AS
-- Тело процедуры
Что касается изменения данных, я лично предпочитаю SqlCommand и хранимые процедуры. Над таблицами запрещены любые операции.
В принципе возможно использование и Адаптера для выполнения операций обновления, в том числе возможно и подключение хранимых процедур. Best regards,
Andrey Barashkin
|
|