在GridView中的批量删除!
生活随笔
收集整理的這篇文章主要介紹了
在GridView中的批量删除!
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.通過GridView的屬性:DataKeyNames來獲取主鍵;
2.遍歷數據行,獲取選中的CheckBox 所屬的行的主鍵.(有點繞口...慢慢看...)
3.拼接SQL語句; Delete 表名 where id in(XX,XX,XX);
?
Default.aspx頁完整代碼:
View Code <%@?Page?Language="C#"?AutoEventWireup="true"?CodeBehind="Default.aspx.cs"?Inherits="WebApplication1.Default"?%><!DOCTYPE?html?PUBLIC?"-//W3C//DTD?XHTML?1.0?Transitional//EN"?"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html?xmlns="http://www.w3.org/1999/xhtml">
<head?runat="server">
????<title></title>
</head>
<body>
????<form?id="form1"?runat="server">
????<div>
????????<br?/>
????????<asp:Button?ID="btnDelete"?runat="server"?Text="刪除選中項"?OnClick="btnDelete_Click"
????????????Style="height:?21px"?/>
????????<br?/>
????????<br?/>
???????<%--?通過給GridView1添加屬性:DataKeyNames來獲取主鍵;--%>
????????<asp:GridView?ID="GridView1"?runat="server"?AutoGenerateColumns="false"?
????????????Width="881px"?DataKeyNames="id">
????????????<Columns>
????????????????<asp:BoundField?DataField="id"?HeaderText="編號"?/>
????????????????<asp:BoundField?DataField="uname"?HeaderText="名稱"?/>
????????????????<asp:TemplateField?HeaderText="選擇">
????????????????????<ItemTemplate>
????????????????????????<asp:CheckBox?ID="cbxId"?runat="Server"?/>
????????????????????</ItemTemplate>
????????????????</asp:TemplateField>
????????????</Columns>
????????</asp:GridView>
????</div>
????</form>
</body>
</html>
?
Default.aspx.cs完整代碼:
View Code using?System;using?System.Web.UI.WebControls;
using?System.Data;
namespace?WebApplication1
{
????public?partial?class?Default?:?System.Web.UI.Page
????{
????????protected?void?Page_Load(object?sender,?EventArgs?e)
????????{
????????????if?(!this.IsPostBack)
????????????{
????????????????GetData();
????????????}
????????}
????????//綁定數據
????????protected?void?GetData()
????????{
????????????string?sql?=?"select?*?from?userinfo";
????????????GridView1.DataSource?=?SQLHelper.GetDateSet(sql,?CommandType.Text);
????????????GridView1.DataBind();
????????}
????????protected?void?btnDelete_Click(object?sender,?EventArgs?e)
????????{
????????????//sqlText用于拼接SQL語句;
????????????string?sqlText?=?"(";
????????????foreach?(GridViewRow?objGVR?in?this.GridView1.Rows)
????????????{
????????????????//判斷當前行是否為數據行;
????????????????if?(objGVR.RowType?==?DataControlRowType.DataRow)
????????????????{
????????????????????CheckBox?objCB?=?objGVR.FindControl("cbxId")?as?CheckBox;
????????????????????if?(objCB.Checked)
????????????????????{
????????????????????????//獲取選中行的主鍵;
????????????????????????sqlText?+=?this.GridView1.DataKeys[objGVR.RowIndex]["id"].ToString()?+?",";
????????????????????}
????????????????}
????????????}
????????????//去掉最后的逗號,并且加上右括號?,如果不去掉最后一個逗號變會成這樣(1,2,3,4,5,6,)
????????????sqlText?=?sqlText.Substring(0,?sqlText.Length?-?1)?+?")";
????????????sqlText?=?"delete?userinfo?where?id?in"?+?sqlText;
????????????Response.Write("拼接后的SQL語句為:"?+?sqlText);
????????????//執行刪除語句?
????????????int?delCount?=?Convert.ToInt32(SQLHelper.ExecuteNonQuery(sqlText,?CommandType.Text));
????????????Response.Write("共刪除數據:"?+?delCount?+?"條");
????????????this.GetData();
????????}
????}
}
?
如需全選功能請參見:http://www.cnblogs.com/zhuiyi/archive/2011/06/27/2091738.html
總結
以上是生活随笔為你收集整理的在GridView中的批量删除!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux EXT3文件系统下成功恢复误
- 下一篇: cglib中Enhancer的简单使用