2013-03-20 100 views
1

我已經閱讀了大量的網站。如果你調用一些代碼而沒有解釋它是如何生成的(例如設計視圖或類型化)或者只是想使用簡單的選擇和更新語句,那麼有很多「示例」。ASp.Net GridView使用存儲過程更新

我有一個GridView。我使用存儲過程中的代碼填充它。現在我想編輯數據。通過設計視圖(數據源,列等),我沒有在Gridview的屬性中設置任何設置。我的問題是,如何設置它以允許編輯並使用SP將其發送回數據庫?

因爲我選擇不在設計視圖中設置屬性,現在是否必須手動創建帶代碼的列?

在設計視圖中設置屬性並轉到該路線會更好嗎?我是以這種方式開始的,但是在使用SP進行更新時遇到問題。

我想整個做在設計師vs做它在代碼的事情讓我感到困惑。

我開始將RowEdit,RowCommand等添加到html和c#中,但是當我運行它時,仍然看不到網頁上的EDIT/CANCEL。

回答

0

學習使用ObjectDataSource。它使您能夠最大限度地自由選擇存儲數據的方式 - 將選擇,更新和刪除委派給外部類,在那裏您只需編寫使用ado,linq,hibernate,webservice或任何其他類的代碼。

直接針對固定數據庫結構編碼您的視圖會遲早會傷害您。

+0

我不認爲一個存儲過程固定的數據結構.... – user1612851 2013-03-20 21:56:15

+0

它,在你不能輕易改變其結構或移動到另一個數據庫中的意義發動機。 – 2013-03-20 21:57:24

+0

在一個項目中完全改變數據庫的可能性很小。你仍然需要更新你的對象。有些事情將不得不更新以更改數據庫。我嘗試儘可能簡單地做到這一點,因爲我是Web應用程序的新手。 – user1612851 2013-03-21 15:36:30

0

創建表等與名稱StckDetails enter image description here

後創建具有ANME sp_StckDetails1 ALTER過程[DBO]過程。[sp_StockDetails1] (
@Action VARCHAR(20), @Branch_ID INT = NULL, @Stock_Name VARCHAR(50)=零, @Stock_code VARCHAR(20)=零, @Qty INT =無效, @Purchase_Price十進制(18,0)=零, @Sales_Price十進制(18,0)=空, @Order_ID int = null ) as BEGIN SET NOCOUNT ON; 如果@動作= '更新' 開始 更新StockDetails設定數量= @數量,Purchase_Price = @ Purchase_Price,Sales_price = @ Sales_Price其中Order_ID上= @ Order_ID上 端 結束

然後添加C#代碼是 標籤lbl_id = GridView2.Rows [e.RowIndex] .FindControl(「Label2」)作爲Label; TextBox txt1_qty = GridView2.Rows [e.RowIndex] .FindControl(「TextBox7」)as TextBox; TextBox txt2_PP = GridView2.Rows [e.RowIndex] .FindControl(「TextBox8」)as TextBox; TextBox txt3_sp = GridView2.Rows [e.RowIndex]。FindControl(「TextBox9」)作爲TextBox;

 SqlCommand cmd = new SqlCommand("sp_StockDetails1", con); 
     cmd.CommandType = CommandType.StoredProcedure; 
     cmd.Parameters.AddWithValue("@Action", "Update"); 
     cmd.Parameters.AddWithValue("@Order_ID", SqlDbType.Int).Value = Convert.ToInt32(lbl_id.Text); 
     cmd.Parameters.AddWithValue("@Qty", SqlDbType.Int).Value = Convert.ToInt32(txt1_qty.Text); 
     cmd.Parameters.AddWithValue("@Purchase_Price", SqlDbType.Decimal).Value = Convert.ToDecimal(txt2_PP.Text); 
     cmd.Parameters.AddWithValue("@Sales_Price", SqlDbType.Decimal).Value = Convert.ToDecimal(txt3_sp.Text); 
     con.Open(); 
     cmd.ExecuteNonQuery(); 
     con.Close(); 

     GridView2.EditIndex = -1; 
     fillgrid2(); 

的GridView DESIN代碼的aspx代碼

'> '> 「> '> '> '> '> '> '> '> ........................................ 。

嘗試它,它就會字