2013-08-16 4 views
0

Я заполняю gridview результатами из нескольких таблиц. Мой вопрос заключается в том, как я могу написать хранимую процедуру для обновления сразу нескольких таблиц. Я фиксирую значения в переменных, как вы видите ниже, поэтому теперь мне просто нужно передать их в sp для обновления базы данных и gridview?Обновление DataGrid для нескольких таблиц

protected void gvOrderDetails_RowUpdating(object sender, GridViewUpdateEventArgs e) 
     { 
     int key = Convert.ToInt32(gvOrderDetails.DataKeys[e.RowIndex].Value); 

     TextBox TrackingID = (TextBox)(gvOrderDetails.Rows[e.RowIndex].FindControl("txtEditTrackingID")); 
     TextBox OrderDate = (TextBox)(gvOrderDetails.Rows[e.RowIndex].FindControl("txtEditOrderDate")); 
     TextBox CustID = (TextBox)(gvOrderDetails.Rows[e.RowIndex].FindControl("txtEditCustID")); 
     TextBox CustomerName = (TextBox)(gvOrderDetails.Rows[e.RowIndex].FindControl("txtEditCustName")); 
     TextBox Address = (TextBox)(gvOrderDetails.Rows[e.RowIndex].FindControl("txtEditAddress")); 
     TextBox RouteID = (TextBox)(gvOrderDetails.Rows[e.RowIndex].FindControl("txtEditRouteID")); 
     // reset to original view 
     gvOrderDetails.EditIndex = -1; 
     //Databind 
     GrabandPostData(); 
    } 

редактировать: с помощью SQL Server 2012

+0

Что вы используете? SQL Server, MySQL, Oracle ...? – Icarus

+0

Я использую сервер Sql – CSharper

+0

И каково имя таблицы, имя базы данных, столбцы (столбцы), в частности, которые вы хотите обновить? Как называется основной столбец в таблице? – Icarus

ответ

0

В вашей хранимой процедуре могут быть несколько операторов обновления/вставки, поэтому, как только вы захватили свои параметры, вы можете передать их в свой SP, и он будет действовать в соответствии с логикой, которую вы вложили в нее, например.

CREATE PROCEDURE MyTablesUpdate(@TrackingID int, @OrderDate datetime, @CustID int, @CustomerName varchar(250)) 
AS 
BEGIN 
    UPDATE ORDERS SET OrderDate = @OrderDate WHERE TrackingID = @TrackingID 

    UPDATE CUSTOMERS SET CustomerName = @CustomerName WHERE CustID = @CustID 
END 
0

Создать хранимую процедуру и передать все значения в качестве параметров. Затем в Хранимой процедуре напишите два оператора обновления, чтобы обновить две разные таблицы.

Смежные вопросы