DeleteCommand属性---删除数据集指定的行保存到数据源中
数据集中删除指定行实例
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Data.SqlClient;namespace PersistDeletes {class Program{static void Main(string[] args){string connString = @"server=.;integrated security=true;database =northwind";string qry = @"select * from employees where country='UK'";string del = @"delete from employeeswhere employeeid =@employeeid";SqlConnection conn = new SqlConnection(connString);try{SqlDataAdapter da = new SqlDataAdapter();da.SelectCommand = new SqlCommand(qry, conn);DataSet ds = new DataSet();da.Fill(ds, "employees");DataTable dt = ds.Tables["employees"];SqlCommand cmd = new SqlCommand(del, conn);cmd.Parameters.Add("@employeeid", SqlDbType.Int, 4, "employeeid");string filt = @"firstname='tan' and lastname = 'ding'";foreach (DataRow row in dt.Select(filt)){row.Delete();}da.DeleteCommand = cmd;da.Update(ds, "employees");foreach (DataRow row in dt.Rows){Console.WriteLine("{0} {1} {2}", row["firstname"].ToString().PadRight(15), row["lastname"].ToString().PadLeft(25), row["city"]);}}catch(Exception e){Console.WriteLine("Error: "+e);}finally{conn.Close();}Console.ReadKey();}}}
示例说明
添加一个DELETE语句
string del = @"
delete from employees
where employeeid =@employeeid";
将DELETE代码放在显示代码之前。在创建命令,映射参数后,代码如下所示:
SqlCommand cmd = new SqlCommand(del, conn);
cmd.Parameters.Add("@employeeid", SqlDbType.Int, 4, "employeeid");
选择要删除的行,并删除它。实际上,我们选择了名为tan ding的雇员的所有行,因为不知道这些雇员的ID。尽管我们只想选择一行,仍使用一个循环删除所有的行
string filt = @"firstname='tan' and lastname = 'ding'";
foreach (DataRow row in dt.Select(filt))
{
row.Delete();
}
最后,用命令设置数据适配器的DeleteCommand属性,从Employees表中删除行,该命令是在调用Upate方法时,数据适配器执行的SQL。接着在数据适配器上调用Update()方法,将变化保存在数据库中。
da.DeleteCommand = cmd;
da.Update(ds, "employees");
无论是删除一行还是删除多选,SQL都是参数化的,所以数据适配器会在employees数据表中查找所有已删除的行,并把对它们的所有删除操作都提交给Employees数据库表。
DeleteCommand属性---删除数据集指定的行保存到数据源中相关推荐
- [vue] 在使用计算属性的时,函数名和data数据源中的数据可以同名吗?
[vue] 在使用计算属性的时,函数名和data数据源中的数据可以同名吗? 莫名其妙的问题.可以同名,但data会覆盖methods.并且本就不该同名,同名说明你命名不规范.然后解释为什么会覆盖,因为 ...
- python怎么读文件里的指定几行-Python从文件中读取指定的行以及在文件指定位置写入...
Python从文件中读取指定的行 如果想根据给出的行号, 从文本文件中读取一行数据, Python标准库linecache模块非常适合这个任务: 测试文件内容 :This is line 1. Thi ...
- rstudio的数据集怎么建立和保存_R语言中怎样将自己的数据集整合到R中?怎样将多个源文件同时载入内存?...
谢邀. 一.关于第一个问题 要考虑两个方面:数据集大小和数据集使用频率(短期暂时使用,频繁长期使用). 1.如果你的数据集不算大,或者你对这个数据集只是短期使用需求,那你可以在第一次载入数据集之后,保 ...
- java 删除数组指定元素_Java从在数组中删除指定元素
package org.usc.action; import java.util.ArrayList; import java.util.Arrays; import java.util.List; ...
- java epub 删除一页_java如何实现批量删除pdf指定的页数
依赖: org.apache.pdfbox pdfbox-app 1.8.10 java 用PDFBox 删除 PDF文件中的某一页,前n页,后n页,效率低,不推荐使用 package com.eve ...
- 订单 图片(一对多关系),地址保存在一个字段中(Json数组对象格式)
订单---->图片(一对多关系),地址保存在一个字段中(Json数组对象格式) 1.前端列表动态添加: jsp:<form id="postForm" method=& ...
- 日常生活小技巧 -- Notepad++一次删除带指定关键字的行
如需转载请注明出处:https://blog.csdn.net/qq_29350001/article/details/89925189 一次删除带指定关键字的行 我想摘选GPS的GNSS数据.里面插 ...
- panda是删除行_pandas删除包含指定内容的行
Outline 处理数据时,遇到文件中包含一些不需要的数据(行),需要把这些不符合要求的行给删除掉. 例如:该数据中应该都是2000年的数据,但是包含了一些2001年的数据,所以需要把2001年的数据 ...
- linux删除指定的行
#!/bin/sh FILENAME=file.txt # 可换为$1if [ ! -f file.txt ];thenecho "$FILENAME no found"exit ...
最新文章
- 【C++】多线程(链式、循环队列)实现生产者消费者模式
- c语言socket实现ftp,C++ socket实现miniFTP
- atitit.人脸识别的应用场景and使用最佳实践 java .net php
- Sql 将多个表查询的结果进行再次查询
- rm: cannot remove directory `misc': Device or resource busy
- 【Linux】crontab 定时启动sh
- 块元素与行内元素转化(display属性)
- proteus中使用虚拟串口实现单片机和上位机通讯
- 【Android图像处理】图像处理之-素描效果
- mysql 把主键当外键_MySQL主键和外键使用及说明
- java开发者最常去的20个英文网站
- 职场小白靠这三招PDF技巧逆袭为职场达人
- matlab自动运行,在指定时间自动运行Matlab程序
- 如何导出html中的图片,一键保存网页中的全部图片
- PageOffice 安装使用说明
- python excel写入一列_python读取excel指定列数据并写入到新的excel方法
- C语言入门教程|| C语言 程序结构|| C语言 基本语法
- Unity中空气墙的制作
- OpenGL-使用Assimp加载3d模型
- 智慧农业:自动气象站
热门文章
- Scala-Unit6-final/type关键字、样例类样例对象
- MariaDB:删除数据库报错:error: 'Error dropping database (can't rmdir './shiro', errno: 39)'
- leveldb 文档 impl.html 阅读记录
- mysql学习笔记03 mysql数据类型
- 1947-2020 NBA总冠军次数排行榜
- 为什么微服务化、数据仓库都不是中台?
- 搜索引擎的竞价排名是怎样实现的?
- 在张学友演唱会的6万观众中,AI锁定了一名逃犯
- 面向IT专业人员的8个新兴AI工作
- 计算机处理负数加法,怎么让加法器实现两个负数相加