使用DataSet删除记录和使用DataSet更新记录非常的相似,DataSet删除记录的步骤如下所示。

q  创建一个Connection对象。

q  创建一个DataAdapter对象。

q  初始化适配器。

q  使用数据适配器的Fill方法执行SELECT命令,并填充DataSet。

q  执行SqlCommandBuilder方法生成UpdataCommand方法。

q  创建DataTable对象并指定相应的DataSet中的表。

q  创建DataRow对象并查找需要修改的相应行。

q  使用Delete方法删除该行。

q  使用Updata方法进行数据更新。

在删除记录前,首先需要创建连接,示例代码如下所示。

string str = "server='(local)';database='mytable';uid='sa';pwd='sa'";

SqlConnection con = new SqlConnection(str);

con.Open();

string strsql = "select * from mynews";

上述代码创建了与数据库的连接,并编写SQL查询语句来填充DataSet。填充DataSet对象需使用DataAdapter,示例代码如下所示。

SqlDataAdapter da = new SqlDataAdapter(strsql, con);

SqlCommandBuilder build = new SqlCommandBuilder(da);

DataSet ds = new DataSet();

da.Fill(ds, "datatable");

编写完成后,需要创建DataTable对象对DataSet中相应的数据进行操作,其代码和更新记录基本相同,示例代码如下所示。

DataTable tb = ds.Tables["datatable"];

tb.PrimaryKey = new DataColumn[] { tb.Columns["id"] };

DataRow row = tb.Rows.Find(3);

在进行删除之前,同样需要找到相应的行,来指定删除语句所需要删除的行,示例代码如下所示。

row.Delete();

读者可以看到,DataSet删除方法与更新方法不同的地方只操作语句的不同,在更新中使用的是Update()方法,而在删除中使用的是Delete()方法。

注意:当使用Delete方法删除记录行的时候,可以通过调用DataRow对象的RejectChanges方法取消对记录的删除,当使用该方法删除记录行时,该行的状态会恢复为Unchanged。

在删除完毕后,同样需要保持DataSet中的数据和数据库中的数据的一致性,示例代码如下所示。

da.Update(ds, "datatable");

使用Update方法能够使DataSet中的数据和数据库中的数据保持一致性,在ASP中,这种方法也比较常见。

使用DataSet数据集删除记录的更多相关文章

  1. 使用DataSet数据集插入记录

    使用INSERT语句能够完成数据插入,使用DataSet对象也可以完成数据插入.为了将数据库的数据填充到DataSet中,则必须先使用DataAdapter对象的方法实现填充,当数据填充完成后,开发人 ...

  2. Delphi数据集与记录

    1.1Delphi数据库应用程序的层次结构 Delphi数据库应用程序通过数据存取构件对数据库进行访问,通过可视的数据构件(Data Control)将数据呈现给用户,并与用户进行交互.Delphi数 ...

  3. 用ORBSLAM2运行TUM Dataset数据集

    参照https://github.com/raulmur/ORB_SLAM2/blob/master/README.md 运行 4. Monocular Examples TUM Dataset 数据 ...

  4. Asp.Net MVC4入门指南(9):查询详细信息和删除记录

    在本教程中,您将查看自动生成的Details和Delete方法. 查询详细信息和删除记录 打开Movie控制器并查看Details方法. public ActionResult Details(int ...

  5. C#操作Dataset数据集与SQLite数据库

    近日有需要写点C#程序,有用到Dataset数据集和SQLite数据库,由于我从来就不擅长记各种编程语言的语法,所以在查阅一堆资料后,留下以下内容备忘:     一.SQLite操作,直接贴代码,很简 ...

  6. mysql delete删除记录数据库空间不减少问题解决方法

    记得在中学时学计算机时老师就告诉我delete删除记录只是给数据库中的记录加一个删除标识了,这样数据库空间并不是减少了,当时没想这么多,昨天发现一个数据库利用delete 删除之后容量没变,后来百度了 ...

  7. js简单实现删除记录时的提示效果

    删除记录时的提示效果,挺人性化的,实现的方法有很多,在本文为大家介绍下使用js是如何实现的 样式 复制代码代码如下: <style type="text/css">  ...

  8. MVC3学习:利用mvc3+ajax实现删除记录

    首先根据模板生成list视图,上面就会有一个delete的链接,但是模板自带的这种删除,需要另外再打开一个删除页,再进行删除.我们可以利用ajax来改写,实现在当前页删除. 在视图上面,将原来的 @H ...

  9. 活字格Web应用平台学习笔记5 - 编辑和删除记录

    了几天,今天上活字格网站一看,他们获奖了,好厉害 荣膺盘古奖!活字格引领企业信息化建设新潮流 好吧,我继续学习,希望早点拿到认证证书. 今天要学的是编辑删除记录.目标: 还是接续之前的工程.做好后是这 ...

随机推荐

  1. 在PHP中获取日期和时间

    PHP提供了多种获取时间和日期的函数,除了通过time()函数获取当前的UNIX时间戳外,调用getdate()函数确定当前时间,通过gettimeofday()函数获取某一天中的具体时间.此外,在P ...

  2. mac 常用的开发工具

    http://www.oschina.net/news/53946/mac-dev-tools 要清楚的认识到,我们寻找的不是开始按钮,而是程序入口,任何一个操作系统,用户要做的事情并不是找到开始菜单 ...

  3. P1337 fibonacci数列(tyvj)

    http://www.tyvj.cn/p/1337 时间: 1000ms / 空间: 131072KiB / Java类名: Main 描述 著名的斐波那契数列f[n]=1               ...

  4. ora-01445 无法从不带保留关键字的表的联接视图中选择 ROWID 或采样

    ora-01445无法从不带保留关键字的表的联接视图中选择 ROWID 或采样 从网上找了很多资料,许多都是没结贴的,说什么的都有,排查了一下sql 发现各个段的left join都没有错误. 有一个 ...

  5. js 比较日期大小

    //1获取当前时间 var curTime = new Date(); //2把字符串格式转换为日期类 var startTime = new Date(Date.parse(kc.begintime ...

  6. Android 解析JSON数组

    1:服务端是使用PHP,从数据库中查询出一个二维数组,然后调用系统函数以json格式返回给客户端. 返回结果如下:http://192.168.0.116/server/selectTitle2jso ...

  7. 在同一上机器上建立两个SVN服务

    最快的三步: 1,SVNADMIN CREATE NAME 2, 改写CONF目录下的相关三个文件. 3,重写一个SVN的启动脚本,指定这个SVN不同的目录及端口号. [general] ### Th ...

  8. java疯狂演义----简单java IDE工具

    file:commons package org.crazyit.editor.commons; import org.crazyit.editor.EditorFrame; import org.c ...

  9. I2C的读写操作实验

    [实验任务]   利用24C08断电以后存储的数据不消失的特点,可以做一个断电保护装置.首先利用单片机做一个0-99秒的自动计时器.然后随机关断电源,在 通电以后计时器接着断电前的状态继续计时. [实 ...

  10. mysql redo log

    mysql> show variables like '%innodb_log_file_size%'; +----------------------+-----------+ | Varia ...