C# DataSet的基本用法

 

首先我们需要打开一个联结:

string MyConnString = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=c:/test/test.mdb;";

string strComm = "select * from UserList";

ADOConnection MyConnection = new ADOConnection(MyConnString);

ADODataSetCommand MyComm = new ADODataSetCommand(strComm,MyConnection);

这里我们为了讲解方便,只在dataset存入一个表的内容:

DataSet MyDataSet = new DataSet();

MyComm.FillDataSet(MyDataSet,"UserList");

此时我们就获得了一个拥有UserList表数据的DataSet。在讲解DataSet之前,我们还需要了解DataSet的结构下面是DataSet的结构树

DataSet

RelationsCollection

ExtendedProperties

TablesCollection  

DataTables  

Rows

Columns

其它

由于我们研究的是DataTable,其它的我们暂时不管他们。一个DataSet中包含多个DataTable,一个DataTable又包含有多个Row,这就是我们操作DataSet的基础啦:)

添加数据

添加一数据,从上面的列表中我们可以看出,其实就是添加一行row,这里我们也来演示一下如何添加一行数据,我们程序一切以dataset为顶点,呵呵,如 果tablescollection,rowscollection下去的话,还有一些烦人的dt.acceptchanges这些方法的调用,很烦人, 还是一次搞定吧。

datarow dr=MyDataSet.Tables["UserList"].NewRow();

dr["UserName"] = "周讯";

dr["ReMark"] = "100";

dr["Comment"] = "漂亮MM";

MyDataSet.Tables["UserList"].Rows.Add(dr);

第 一行,我们建立一个新的数据行,它用来储存我们新加入的数据。然后我们在这个数据行中加入我们需要的数据。dr["username"]表明是对 username字段进行添加,你可以使用dr[1]来添加信息,但是这需要我们事先知道字段在数据表的位置,而且在不知道数据表结构的情况很难知道我们 添加的数据的对应情况,所以还是用字段名为好。

最后我们使用RowsCollection的Add方法,将我们新建这一行加入到数据表中。

修改数据

知道如何添加数据后,修改数据也是很简单的事情了.

MyDataSet.Tables["UserList"].Rows[0]["UserName"]="飞刀大哥";

这样我们就修改了第一行数据中的UserName字段。

删除数据

删除数据,主要是使用rowscollection提供的delete方法,看下面的程序也是很简单的事情啦:)

MyDataSet.Tables["UserList"],Rows[0].Delete();

这一行数据就已经被删除了。

恢复数据

有时候我们添加/修改数据会出现错误,这时候,就需要恢复原来的数据。下面的程序,显示如何判断是否有错误发生:

if(MyDataSet.HasErrors)

{

MyDataSet.RejectChanges();

}

首 先我们检查DataSet中是否有错误发生,如果有就使用RejectChanges()方法,恢复DataSet中的数据。注意这里恢复是在 DataSet中所有表以及表中DataRow中的数据,也就是在此交次操作的数据全部恢复。如果我们只需要恢复部分内容,我们可以使用 DataTable或DataRow的RejectChanges(),这里就不详细讲解了,使用方法和DataSet一样,只是操作的对像不同而已。

探测dataset是否有改动

我们在将dataset送交给数据库去保存去,我们需要看看这个dataset是否已经被改动了。如果没有改动,我们也就没有必要去修改数据库了。

if(mydataset.haschanges)

{

//保存

}else{

//不进行任何操作

}

更新数据库

我 们上面的操作,都只是针对dataset的,没有操作数据库,但是我们的目的还是要将数据保存到数据中去,所以我们这里就需要调用 datasetcommand的update方法。下面的程序显示如何将dataset的数据交给数据库。 mycomm.update(mydataset);

很简单的一句,呵呵。这里要注意,如果一个DataSet中包含有多个表,而我们只更新一个,那我们就必须写明更新的数据表名:

MyComm.Update(MyDataSet,"UserList");

当Update方法被调用后,DataSetCommand会将数据库中的数据与DataSet中的数据相比较,对不相同的地方进行更新。

时间: 2024-10-12 19:58:12

C# DataSet的基本用法的相关文章

跟着杨中科循序渐进学习wpf(全)

第一季 C#编程基础 1.用C#编写一个10+20=?的小程序: public static voidMain(tring[] args) { int i1=10; int i2=20; int i3=i1+i2; Console.WriteLine(i3);           //也可用占位符来实现:Console.WriteLine("{0}+{1}={2}",i1,i2,i1+i2);在输出参数较多时候要用占位符 Console.ReadKey();             

AEAI ESB路由转换机制说明

1.背景概述 相信了解数通畅联的人对AEAI  ESB并不陌生,其设计器ESBDesigner中内置组件有:路由和转换.数据适配器.协议适配器.协议接入适配器等4类组件,每类组件下面包含各种类型的组件节点,可以使程序流程更直观,加快开发速度. 路由和转换中包含了三个节点分别为:分支路由.合并路由和 java转换,分支路由用于将一条线路分为多个支路,合并路由为将多条分支合并到一起,java转换节点可以进行变量的数据转换和赋值,并且在模型无法满足要求时支持代码扩展.本文档详细介绍一下路由和转换的机制

dataset 用法(1)

DataSet是表和列结构在内存中的表示方式,DataSet支持多表.表间关系.数据约束等,和关系数据库的模型基本一致.(本质上是微型的数据库.包含一组DataTable对象和DataTable之间的连接关系.不包含数据库连接的概念,也就是说其中的数据可以不是来自数据库,可以是读取的文件中的数据.DataTable包含一些DataRow和DataColumn表示数据库表中的行和列,通过他们可以获取表.行和列的元素,且支持主键和外键. DataSet的数据集是与数据库断开的,DataSet中可包括

dataset 用法(2)

1.为DataTable添加列 (1)添加列 DataTable  tbl = ds.Tables.Add("User"); DataColumn col =tbl.Columns.Add("UserID",typeof(int)); col.AllowDBNull = false; col.MaxLength = 6; col.Unique = true; tbl.PrimaryKey = new DataColumn[]{tbl.Columns["Us

关于DataSet事务处理以及SqlDataAdapter四种用法

如果是直接执行SQL语句时,事务很好处理,对于大多数的Erp应用,不能能用SQL来处理数据,所以更新DataSet更为常用,更新单个的DataSet也非常简单,不需要事务的处理,给多个DataSet增加事务多数应用于分布式的程序代码中,下面为在Webservice中更新Winform传递过来的经过压缩的数据集的事务处理代码,多个DataSet 情况. /// <summary> /// 更新经过压缩的DataSet /// </summary> /// <param >

C#里sqlDataAdapter.fill(DataSet,String)的用法

第二个参数 String是指定DataSet 里表的名字,例如 sqlDataAdapter.fill(DataSet,"学生表") 指定后,以后就可以这样调用这张表 DataSet.Tables["学生表"] 第二个参数可以不要的,如果不要第二个参数 String 那你调用这张表只能通过索引号,例如 DataSet.Tables[0] 如果填充的表比较多的话,用这个参数比较容易管理和调用. C#里sqlDataAdapter.fill(DataSet,String

DataSet与DataTable基本用法

http://files.cnblogs.com/files/monkeyZhong/DataSetExample.rar 在设计数据库操作或者XML操作等表格数据时,我们难免要跟DataSet和DataTable打交道,我们这里就介绍下这几个类的用法: 首先介绍DataTable,其实就是一个二维表格,没那么悬乎,举个构造的例子: DataTable dt = new DataTable("Customers"); dt.Columns.Add("CustomerID&qu

DataSet用法详细 转

一.特点介绍 1.处理脱机数据,在多层应用程序中很有用.2.可以在任何时候查看DataSet中任意行的内容,允许修改查询结果的方法.3.处理分级数据4.缓存更改5.XML的完整性:DataSet对象和XML文档几乎是可互换的. 二.使用介绍 1.创建DataSet对象: DataSetds = new DataSet("DataSetName"); 2.查看调用SqlDataAdapter.Fill创建的结构 da.Fill(ds,"Orders"); DataTa

C# DataSet与DataTable的区别和用法

DataSet是数据集,DataTable是数据表,DataSet存储多个DataTable.DataSet和DataTable像是专门存储数据的一个容器,在你查询数据库得到一些结果时可以存在里面. DataSet功能强大有浏览.排序.搜索.过滤.处理分级数据.缓存更改等功能,还可以与XML数据互换.DataSet中可包括多个DataTable,可将多个查询结构存到一个DataSet中,方便操作 ADO.NET开发人员为方便数据处理开发出来的,是数据的集合,为解决DataReader的缺陷设计的