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要求一直连在数据库上. 这将会给数据库的连 ...
随机推荐
- VC++双缓冲保持背景不擦除之实现
几天前,我终于克服了C++窗体重绘时的闪烁问题,用到的技巧就是双缓冲.但是怎样保持住已经绘制的图形呢?也就是仿照Windows自带的画图程序一般,动态的做出一条直线.最容易想到的方法是在MouseMo ...
- Delphi关于记录文件的操作
http://www.cnblogs.com/railgunman/archive/2010/08/16/1801004.html Delphi关于记录文件的操作 本例子几个变量的说明TFileR ...
- Linux shell之sed
sed编辑器逐行处理输入,然后把结果发送到屏幕. -i选项:直接作用源文件,源文件将被修改. sed命令和选项: a\ 在当前行后添加一行或多行 c\ 用新文本替换当前行中的文本 d 删除行 i\ 在 ...
- Oracle SQL优化一(常见方法)
1.表访问方式优化: a)普通表优先“Index Lookup 索引扫描”,避免全表扫描 大多数场景下,通过“Index Lookup 索引扫描”要比“Full Table Scan (FTS) 全表 ...
- 常用JS汇总
01. 取文档url参数值 function getQueryString(name) { var reg = new RegExp("(^|&)" + name + &q ...
- oracle全文检索
全文检索 oracle对使用几十万以上的数据进行like模糊查询速度极差,包括 like 'AAA%' ,like '%AAA',like '%AAA%',like '%A%A%'的那些模糊查询.网上 ...
- 简单介绍Android应用特色及详解四大组件
Android应用特色 Android主要有什么特色呢,有以下几个方面来体现: 四大组件 丰富的系统控件 SQLite数据库等持久化技术 地理位置定位 强大的多媒体 传感器 1,四大组件 Androi ...
- HTML小知识---Label
今天知道了一个html小知识: <input type="checkbox" id="chkVersion" /> ...
- HttpClient请求发送的几种用法:
/// <summary> /// HttpClient实现Post请求 /// </summary> static async void dooPost() { string ...
- 关于php中正则匹配包括换行符在内的任意字符的问题总结
要使用正则匹配任意字符的话,通常有以下几种方法,这里我分别对每一种方法在使用的过程中做一个总结: 第一种方式:[.\n]*? 示例 ? PHP preg_match_all('/<div cla ...