在GridView中的批量删除!
1.通过GridView的属性:DataKeyNames来获取主键;
2.遍历数据行,获取选中的CheckBox 所属的行的主键.(有点绕口...慢慢看...)
3.拼接SQL语句; Delete 表名 where id in(XX,XX,XX);
Default.aspx页完整代码:
<!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完整代码:
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,Linux中find批量删除空文件及空文件夹脚本
Linux中find批量删除空文件及空文件夹脚本 linux下批量删除空文件(大小等于0的文件)的方法 代码如下 复制代码 find . -name "" -type f -siz ...
- php redis 删除key 通配符,php中redis批量删除key的方法是什么
php中redis批量删除key的方法是什么 发布时间:2020-08-28 14:42:05 来源:亿速云 阅读:159 作者:小新 小编给大家分享一下php中redis批量删除key的方法是什么, ...
- linux常用删除空文件夹,Linux基础 linux系统中的批量删除文件与空文件删除的命令介绍...
Linux基础教程linux系统中的批量删除文件与空文件删除的命令介绍 Linux资料下面删除文件或者目录命令rm(remove): Linux培训功能说明:删除文件或目录. 语 法:rm [-dfi ...
- py-redis中的批量删除key方法
py-redis中有个delete接口,既可以删除单个key,也可以批量删除key,后者的正确用法网上很少,我在实践中遇到该问题,特此记录一下. 网上的资料,大多都是这样的 r.delete('age ...
- EF Core中高效批量删除、更新数据的Zack.EFCore.Batch发布三个新特性
Zack.EFCore.Batch是一个支持在Entity Framework Core中高效删除和更新数据的开源库.我们知道,EF Core中不支持高效的删除和更新数据,所有的更新和操作都是逐条数据 ...
- Redis中的批量删除数据库中的Key
本文参考:http://blog.csdn.net/spring21st/article/details/15771861 http://stackoverflow.com/questions/575 ...
- 表格中复制后出现空格_软件应用在Excel表格中怎样批量删除空格?
在日常办公中对于Excel的使用有没有全部掌握呢?怎样快速整理表格中的数据呢?这些都是职场必备技能,了解更多的Excel知识可以让你在数据管理,表格管理中游刃有余.下面为大家分享一些经常使用的Exce ...
- 【操作篇】Excel中如何批量删除批注
有没有发现,某些财务人员给的excel表格中各种红点点,特别是在做数据整理和清洗时,会特别捉急,一个个点选内心多么的~~(崩了) 其实批量删除批注不难,重点是在批量,是如何批量选择, 第一步!!! 方 ...
- 【git学习】GitLab中如何批量删除本地以及远程的TAG标签
一.需求描述 之前从一个古老的仓库,fork了一份代码,如何开发新的需求.发现有很多Tag和Branch都是之前仓库的,我并不需要,因此需要把他们清理掉. 之前Branch的我们写好了脚本删除了,这里 ...
最新文章
- 关于AI,腾讯又有大动作!开发者该如何应对?
- nginx mysql占用率高_nginx/mysql查看内存占用
- hadoop 全分布式部署
- python修改第三方库重写_Python安装第三方库,切换镜像源
- QT的QBoxPlotSeries类的使用
- C# -- RSA加密与解密
- 无法开启计算机,Win7下鼠标右键无法开启计算机属性怎么办?
- C++ pair的基本用法总结
- python2中range和xrange的区别
- if分支语句(JS)
- 线性代数【19】叉积
- 程序员找女朋友都有哪些标准?
- msdia80.dll是什么文件?msdia80.dll文件缺失怎么修复?
- 【开源】百度中文依存句法分析工具DDParser重磅开源,快来体验一下吧
- php中之美家庭儿童零食,适合孩子吃的零食有哪些
- 第6节 构建简单局域网并实现远程管理路由器与交换机——基于PacketTracer仿真
- Win2012或Win2016安装网卡
- Vue从入门到放弃(一)——指令篇
- 开发人员必备的13项技能
- win10下安装Debain Linux子系统
热门文章
- mysql动态分区_MySQL动态创建分区
- python3批量修改文件名称 代码说明
- zblogphp 广告联盟_停止折腾联盟广告样式,重新回归内容写作
- mysql数据库检表_MYSQL数据库检查数据表和修复数据表
- 【opencv】14.cv::cvtColor函数转换颜色空间时使用CV_RGB2BGR与CV_BGR2RGB结果一样的原因
- 前端面试-综合问题版
- Redis Streams 介绍
- 编码练习——Java-String-API-练习
- 小瓜牛漫谈 — String、StringBuffer、StringBuilder
- Spring集成MyBatis框架