在使用ASP.NET與SQLServer做出留言板系列文中,已經有寫過新增資料進資料表的作法了,今天要來寫在Gridview控制項刪除資料庫內的資料的用法。
在前台(.aspx)的設計模式中,GridView控制項的右上角小箭頭,選則編輯資料行,可用欄位找到CommandField,將刪除的欄位拉近選取的欄位,並將它轉換為TemplateField(在右下方有藍色的字可以按)。
並在選取的欄位,找到刪除點開,將HeaderText打上欄位名稱。
按下確定後,GridView選編輯樣板,對刪除右鍵選屬性就會出現刪除欄位(LinkButton),且內容也會出現刪除的連結了。
接下來GridView選編輯樣板,ItemTemplate找到刪除,對刪除右鍵選擇屬性,確認CommandName是否是Delete,若不是須將改成Delete,然後結束樣板。
CommandName要寫Delete事件動作才可以抓到這欄位是刪除。
GridView的事件有好幾個,多數都有前後之分(ing或ed結尾),刪除的話有分成RowDeleted和RowDeleting。
RowDeleted: 刪除後。
RowDeleting: 刪除中。
手寫刪除程式,必須寫在RowDeleting事件,所以在GridView屬性,選到事件(閃電符號),對RowDeleting連點兩下會跳到.aspx.cs後端的畫面。
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
string id = GridView1.DataKeys[e.RowIndex].Value.ToString();//取得點擊這列的id
string get = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["ConnectionStrings的name"].ConnectionString;
SqlConnection Connection = new SqlConnection(get);
SqlCommand command = new SqlCommand($"DELETE FROM ORID_data WHERE (id = {id}) ", Connection);
Connection.Open();
command.ExecuteNonQuery();
Connection.Close();
Response.Redirect(Request.Url.ToString());
}
到前台找到刪除的LinkButton內加上以下程式碼:
OnClientClick="javascript:if(!window.confirm('你確定要刪除嗎?')) window.event.returnValue = false;"
這樣點擊刪除後,就會自動跳出"你確定要刪除嗎?"的視窗了,防止誤按。
按下確定後,就可以刪除資料了,並且自動重新整理頁面將資料從GridView中消失了。