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中的批量删除!相关推荐

  1. 删除空文件夹 linux,Linux中find批量删除空文件及空文件夹脚本

    Linux中find批量删除空文件及空文件夹脚本 linux下批量删除空文件(大小等于0的文件)的方法 代码如下 复制代码 find . -name "" -type f -siz ...

  2. php redis 删除key 通配符,php中redis批量删除key的方法是什么

    php中redis批量删除key的方法是什么 发布时间:2020-08-28 14:42:05 来源:亿速云 阅读:159 作者:小新 小编给大家分享一下php中redis批量删除key的方法是什么, ...

  3. linux常用删除空文件夹,Linux基础 linux系统中的批量删除文件与空文件删除的命令介绍...

    Linux基础教程linux系统中的批量删除文件与空文件删除的命令介绍 Linux资料下面删除文件或者目录命令rm(remove): Linux培训功能说明:删除文件或目录. 语 法:rm [-dfi ...

  4. py-redis中的批量删除key方法

    py-redis中有个delete接口,既可以删除单个key,也可以批量删除key,后者的正确用法网上很少,我在实践中遇到该问题,特此记录一下. 网上的资料,大多都是这样的 r.delete('age ...

  5. EF Core中高效批量删除、更新数据的Zack.EFCore.Batch发布三个新特性

    Zack.EFCore.Batch是一个支持在Entity Framework Core中高效删除和更新数据的开源库.我们知道,EF Core中不支持高效的删除和更新数据,所有的更新和操作都是逐条数据 ...

  6. Redis中的批量删除数据库中的Key

    本文参考:http://blog.csdn.net/spring21st/article/details/15771861 http://stackoverflow.com/questions/575 ...

  7. 表格中复制后出现空格_软件应用在Excel表格中怎样批量删除空格?

    在日常办公中对于Excel的使用有没有全部掌握呢?怎样快速整理表格中的数据呢?这些都是职场必备技能,了解更多的Excel知识可以让你在数据管理,表格管理中游刃有余.下面为大家分享一些经常使用的Exce ...

  8. 【操作篇】Excel中如何批量删除批注

    有没有发现,某些财务人员给的excel表格中各种红点点,特别是在做数据整理和清洗时,会特别捉急,一个个点选内心多么的~~(崩了) 其实批量删除批注不难,重点是在批量,是如何批量选择, 第一步!!! 方 ...

  9. 【git学习】GitLab中如何批量删除本地以及远程的TAG标签

    一.需求描述 之前从一个古老的仓库,fork了一份代码,如何开发新的需求.发现有很多Tag和Branch都是之前仓库的,我并不需要,因此需要把他们清理掉. 之前Branch的我们写好了脚本删除了,这里 ...

最新文章

  1. 关于AI,腾讯又有大动作!开发者该如何应对?
  2. nginx mysql占用率高_nginx/mysql查看内存占用
  3. hadoop 全分布式部署
  4. python修改第三方库重写_Python安装第三方库,切换镜像源
  5. QT的QBoxPlotSeries类的使用
  6. C# -- RSA加密与解密
  7. 无法开启计算机,Win7下鼠标右键无法开启计算机属性怎么办?
  8. C++ pair的基本用法总结
  9. python2中range和xrange的区别
  10. if分支语句(JS)
  11. 线性代数【19】叉积
  12. 程序员找女朋友都有哪些标准?
  13. msdia80.dll是什么文件?msdia80.dll文件缺失怎么修复?
  14. 【开源】百度中文依存句法分析工具DDParser重磅开源,快来体验一下吧
  15. php中之美家庭儿童零食,适合孩子吃的零食有哪些
  16. 第6节 构建简单局域网并实现远程管理路由器与交换机——基于PacketTracer仿真
  17. Win2012或Win2016安装网卡
  18. Vue从入门到放弃(一)——指令篇
  19. 开发人员必备的13项技能
  20. win10下安装Debain Linux子系统

热门文章

  1. mysql动态分区_MySQL动态创建分区
  2. python3批量修改文件名称 代码说明
  3. zblogphp 广告联盟_停止折腾联盟广告样式,重新回归内容写作
  4. mysql数据库检表_MYSQL数据库检查数据表和修复数据表
  5. 【opencv】14.cv::cvtColor函数转换颜色空间时使用CV_RGB2BGR与CV_BGR2RGB结果一样的原因
  6. 前端面试-综合问题版
  7. Redis Streams 介绍
  8. 编码练习——Java-String-API-练习
  9. 小瓜牛漫谈 — String、StringBuffer、StringBuilder
  10. Spring集成MyBatis框架