zoukankan      html  css  js  c++  java
  • 在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

  • 相关阅读:
    html 复习
    用openrowset连接远程SQL或插入数据
    查询SQL中的text类型字段内容,让其显示完整
    删除CheckBoxList未选中或选中的CheckBox选项
    RSA的加解密过程(转自CSDN,学习用)
    创建与删除SQL约束或字段约束。
    根据DataGrid绑定的列的SortException字段进行排序
    尽量避免IE拦截弹出窗口的代码,与ListBox的双击事件结合。
    比较好看的滚动条样式和按钮样式和文本框样式
    JS控制按钮10秒钟后才能正常使用
  • 原文地址:https://www.cnblogs.com/zhuiyi/p/2091741.html
Copyright © 2011-2022 走看看