C#与数据库访问技术总结(十七)
使用DataSet对象访问数据库
当对DataSet对象进行操作时,DataSet对象会产生副本,所以对DataSet里的数据进行编辑操作不会直接对数据库产生影响,而是将DataRow的状态设置为added、deleted或changed,最终的更新数据源动作将通过DataAdapter对象的update方法来完成。
DataSet对象的常用方法如下。
- void AcceptChanges():该方法用来提交DataSet里的数据变化。
- void clear():该方法用来清空DataSet里的内容。
- DataSet copy():该方法把DataSet的内容复制到其他DataSet中。
- DataSet GetChanges():该方法用来获得在DataSet里已经被更改后的数据行,并把这些行填充到Dataset里返回。
- bool HasChanges():如果DataSet在创建后或执行AcceptChanges后,其中的数据没有发生变化,返回True,否则返回False。
- void RejectChanges():该方法撤销DataSet自从创建或调用AcceptChanges方法后的所有变化。
DataSet对象一般是和DataAdapter对象配合使用。
下面的代码演示了如何综合使用DataSet和DataAdapter对象访问数据库。
//省略获得连接对象的代码
……
//创建DataAdapter
string sql= " select * from user ";
SqlDataAdapter sda=new SqlDataAdapter(sql, conn);
// 创建并填充Dataset
DataSet ds=new DataSet();
sda.fill(ds, "user");
//给Dataset创建一个副本,操作对副本进行,以免因误操作而破坏数据
DataSet dsCopy=ds.Copy();
DataTable dt=ds.Table["user"];
//对DataTable中的DataRow和DataColumn对象进行操作
……
//最后将更新提交到数据库中
sda.update(ds, "user");
上述代码的主要业务流程如下。
(1)创建DataAdapter和DataSet对象,并用DataAdapter的SQL语句生成的表填充到 DataSet的DataTable中。
(2)使用DataTable对表进行操作,例如做增、删、改等动作。
(3)使用DataAdapter的update语句将更新后的数据提交到数据库中。
另外,上述代码在操作DataSet前,为DataSet创建了一个副本,用宋避免误操作。
C#与数据库访问技术总结(十七)的更多相关文章
- C#-数据库访问技术 ado.net——创建 数据库连接类 与 数据库操作方法 以及简单的数据的添加、删除、修改、查看
数据库访问技术 ado.net 将数据库中的数据,提取到内存中,展示给用户看还可以将内存中的数据写入数据库中去 并不是唯一的数据库访问技术,但是它是最底层的数据库访问技术 1.创建数据库,并设置主外键 ...
- C#与数据库访问技术总结(十八)
ADO.NET 代码综合示例 前面已经介绍过OLE DB.NET和SQL Server.NET数据提供者可以用来连接不同的数据源. 以下代码不仅综合演示了使用ADO.NET的这两种数据提供者访问数据库 ...
- c# 窗体开发4 数据库访问技术
ADO.NET的名称起源于ADO(ACTIVEX DATA OBJECTS) USING SYSTEM; USING SYSTEM.COLLECTIONS.GENERIC; USING SYSTEM. ...
- 数据库访问技术 odbc dao rdo uda jet oledb
一.UDA(UniversalDataAccess) 这是微软提供的通用数据访问策略.包括ADO.OLEDB和ODBC.它不光提供了数据库的访 问能力,对于其它的数据存储技术也同样支持,如目录服务.E ...
- C#与数据库访问技术总结(七)综合示例
综合示例 说明:前面介绍了那么多,光说不练假把式,还是做个实例吧. 表:首先你要准备一张表,这个自己准备吧.我们以学生表为例. 1.ExecuteScalar方法 ExecuteScalar方法执行返 ...
- C#与数据库访问技术总结(十六)之 DataSet对象
DataSet对象 DataSet对象可以用来存储从数据库查询到的数据结果,由于它在获得数据或更新数据后立即与数据库断开,所以程序员能用此高效地访问和操作数据库. 并且,由于DataSet对象具有离线 ...
- C#与数据库访问技术总结(十五)之 DataAdapter对象代码示例
DataAdapter对象代码示例 下面的代码将说明如何利用DataAdapter对象填充DataSet对象. private static string strConnect=" data ...
- C#与数据库访问技术总结(十四)之DataAdapter对象
DataAdapter对象 DataAdapter对象主要用来承接Connection和DataSet对象. DataSet对象只关心访问操作数据,而不关心自身包含的数据信息来自哪个Connectio ...
- C#与数据库访问技术总结(十三)之DataReader对象
DataReader对象与数据获取 DataReader对象以“基于连接”的方式来访问数据库. 也就是说,在访问数据库.执行SQL操作时,DataReader要求一直连在数据库上. 这将会给数据库的连 ...
随机推荐
- json 判断字段
1方式一 !("key" in obj) 方式二 obj.hasOwnProperty("key") //obj为json对象. 2获取不确定键的值 for( ...
- scala学习心得(2)
scala类中可以通过override 重载方法 scala定义的函数式类不可被改变,这样传进去的参数就需要提前被检验,可以通过scala.predef包中的方法require方法 定义辅助构造器 d ...
- console.log的应用
这两天在学javascript,但是有个问题老是觉得很疑惑,那就是这两个表达式到底有啥区别,虽然结果输出都差不多,但是我想这个两个表达式被开发出来,肯定是有意义的吧!哪位高手解答下吧!Thanks i ...
- [原创]Matlab之GUI生成EXE文件
近期因为项目需要,简化流程,写了一些Matlab程序,并配备上了GUI界面使其简单易用.然后问题来了,可移植性.使用Matlab生成EXE文件(可以封装很多的function),然后在一台安装有Mat ...
- HDU 4578 Transformation (线段树区间多种更新)
http://acm.hdu.edu.cn/showproblem.php?pid=4578 题目大意:对于一个给定序列,序列内所有数的初始值为0,有4种操作.1:区间(x, y)内的所有数字全部加上 ...
- 浅谈TCP/IP网络编程中socket的行为
我认为,想要熟练掌握Linux下的TCP/IP网络编程,至少有三个层面的知识需要熟悉: 1. TCP/IP协议(如连接的建立和终止.重传和确认.滑动窗口和拥塞控制等等) 2. Socket I/O系统 ...
- Java如何将html转以后的字符转化成正常显示的字符
String str = "“!@#¥%……&——+”";//“!@#¥%……&——+” 中文状态下的标点符号,进过html转换了 String convStr ...
- struts2 表单验证
http://www.blogjava.net/javagrass/archive/2011/11/21/364400.html
- 获得select下拉框的值
html -------------------------------------------------------------------------------------- <sele ...
- Create My MySQL configuration by Percona
本文地址:http://www.cnblogs.com/yhLinux/p/4013065.html https://tools.percona.com/ Percona是一款在线自动生成MySQL配 ...