Gridview中运用CommandField 删除控件时注意点
生活随笔
收集整理的這篇文章主要介紹了
Gridview中运用CommandField 删除控件时注意点
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
我在gridview1 《編輯列》里面添加了一個《CommandField 刪除》的控件,之后在gridview1的事件《RowDeleting》事件下 寫了一段刪除行的 代碼:
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
??{
??string id = GridView1.DataKeys[e.RowIndex].Value.ToString();
??SqlConnection conn = new SqlConnection(strConn);
??SqlCommand cmd = new SqlCommand();
??cmd.Connection = conn;
??cmd.CommandText = "delete from chanpin where id =" + id;
??conn.Open();
??cmd.ExecuteNonQuery();
??conn.Close();
??Response.Write("<script>alert('成功!');window.location.href=window.location.href;</script>");
??}
gridview1的《DataKeyNames》屬性也給了字段名《id》
問題是 當(dāng)我點(diǎn)擊 刪除 按鈕后 拋出異常“ 除非指定了 DeleteCommand,否則數(shù)據(jù)源“SqlDataSource2”不支持刪除操作。”
當(dāng)我再次打開頁面時 發(fā)現(xiàn)相應(yīng)的數(shù)據(jù)確實(shí)也刪除了。為什么要報錯呢?
而且我是按照以前項(xiàng)目里一模一樣的做的方法和代碼,以前沒有這樣的錯誤。為什么現(xiàn)在就錯了如何解決呢? 解決辦法: DataSource1.DeleteCommand=sql
DataSource1是你頁面上綁定到gridview1的數(shù)據(jù)源,sql是你的sql刪除語句
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
??{
??string id = GridView1.DataKeys[e.RowIndex].Value.ToString();
??SqlConnection conn = new SqlConnection(strConn);
??SqlCommand cmd = new SqlCommand();
??cmd.Connection = conn;
??cmd.CommandText = "delete from chanpin where id =" + id;
??conn.Open();
??cmd.ExecuteNonQuery();
??conn.Close();
??Response.Write("<script>alert('成功!');window.location.href=window.location.href;</script>");
??}
gridview1的《DataKeyNames》屬性也給了字段名《id》
問題是 當(dāng)我點(diǎn)擊 刪除 按鈕后 拋出異常“ 除非指定了 DeleteCommand,否則數(shù)據(jù)源“SqlDataSource2”不支持刪除操作。”
當(dāng)我再次打開頁面時 發(fā)現(xiàn)相應(yīng)的數(shù)據(jù)確實(shí)也刪除了。為什么要報錯呢?
而且我是按照以前項(xiàng)目里一模一樣的做的方法和代碼,以前沒有這樣的錯誤。為什么現(xiàn)在就錯了如何解決呢? 解決辦法: DataSource1.DeleteCommand=sql
DataSource1是你頁面上綁定到gridview1的數(shù)據(jù)源,sql是你的sql刪除語句
轉(zhuǎn)載于:https://www.cnblogs.com/su1643/p/4009549.html
總結(jié)
以上是生活随笔為你收集整理的Gridview中运用CommandField 删除控件时注意点的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java_Web使用简单的批处理操作
- 下一篇: win7 重启 IIS.