黑马程序员技术交流社区
标题:
DataSet的作用与用法,
[打印本页]
作者:
天高地阔
时间:
2012-4-9 16:43
标题:
DataSet的作用与用法,
,本人水平比较菜,还请各位浅显易懂的讲解下,
作者:
吴永飞
时间:
2012-4-9 17:06
dataset是ADO.NET的重要核心对象,用于存储临时数据表,改对象底层使用XML。
存储在内存当中 比较耗费资源。
例如
//数据适配器。
SqlDataAdapter da = new SqlDataAdapter(sqlStr, con);
//数据集对象。
DataSet ds = new DataSet();
//填充到数据集。
da.Fill(ds, tableName);
//填充之后你就可以使用数据集里面的表了。
dv = ds.Tables[tableName].DefaultView;
作者:
职业规划-蔡红微老师
时间:
2012-4-9 17:26
dataset是数据集,数据集里包含datatable,还有数据表之间的关系等,一个数据集可以不包含表,一个或多个datatable表。
datatable是数据表,它有列columns,行rows等。DataView是视图
DataView用来创建DataTable中所存储数据的不同视图,通常用于数据绑定
DataView DV = ds.Tables["表名"].DefaultView;
DataGrid1.DataSource=DV;
简单说就是:
DataSet:数据集。一般包含多个DataTable,用的时候,dataset["表名"]得到DataTable
DataTable:数据表。
一:
SqlDataAdapter da=new SqlDataAdapter(cmd);
DataTable dt=new DataTable();
da.Fill(dt);
-----------------
直接把数据结果放到datatable中,
二:
SqlDataAdapter da=new SqlDataAdapter(cmd);
DataSet dt=new DataSet();
da.Fill(dt);
----------------
数据结果放到dataset中,若要用那个datatable,可以这样:dataset[0]
更常见的用法:
SqlDataAdapter da=new SqlDataAdapter(cmd);
DataSet dt=new DataSet();
da.Fill(dt,"table1");
用的时候:这样取datatable:
dataset["table1"]
=======================//前段部分为网上收集的资料,并非原创
DataTable表示内存中的一个表。
DataTable的创建
DataTable dt=new DataTable("tbAmount"); //创建DataTable
dt.Columns.Add("riqi",System.Type.GetType("System.String")); //创建DataTable的列的框架
//也可以用DataColumn dc=new DataColumn("riqi",System.Type.GetType("System.String")); dt.Columns.Add(dc);
dt.Columns.Add("bianm",System.Type.GetType("System.String"));
dt.Columns.Add("xAmount",System.Type.GetType("System.String"));
dt.Columns.Add("jPoints",System.Type.GetType("System.String"));
DataRow drw=dt.NewRow(); //创建一行
drw["riqi"]="2008-12-25"; //把数据加进行
drw["bianm"]="100007";
drw["xAmount"]="234";
drw["jPoints"]="900";
dt.Rows.Add(drw); //把行添加到DataTable中
作者:
黄雄斌
时间:
2012-4-9 17:31
DataSet数据集是ADO.NET的断开式结构的核心组件,它的数据是与数据库断开的,即它在与数据源断开的缓存中存储数据,从而实现了独立于任何数据源的数据访问。
DataSet可用于多层应用程序中,如果应用程序运行在中间层的业务对象中来访问数据库,则业务对象需将脱机数据结构传递给客户应用程序。
DataSet的功能:浏览、排序、搜索、过滤、处理分级数据、缓存更改等;还可以与XML数据互换。
DataSet的结构和关系型数据库很类似,具有表、行、列等属性。主要用于在内存中存放数据,可以一次读取整张数据表的内容。DataSet中可包括多个DataTable,DataTable中又包括多个DataRow、DataColumn、Constraint对象,分别存放数据表的行信息、列信息及约束信息,可通过DataRow、DataColumn来查看、操作其中的数据,如需将操作结果返回给数据库的话,则可以调用DataAdapter的 Update方法。此外DataSet对象还包括DataRelation对象,用于表示表间的关系。
在使用DataSet对象之前,必须有一个可以建立初始化数据集的对象,即DataAdapter对象。
DataColumn对象的常用属性及方法如下。
◆ Count属性:DataTable对象中的字段数;
◆ DataType:该列的数据类型;
◆ ColumnName属性:该列的名字;
◆ AllNull属性:该表字段是否接受空值;
DataRow对象的常用属性及方法。
◆ RowState属性:行对象的状态;
◆ ItemArray属性:以数组方式读取行内数据;
◆ Item方法:读取行内的数据,如Item(3),就是读取第3个数据。
※ DataSet的操作:
(1) DataSet ds=new DataSet();
DataTable dt=new DataTable("newTable");
ds.Tables.Add(dt);
(2) DataSet ds=new DataSet();
DataTable dt=ds.Tables.Add("newTable");
上述两种方法都可以在DataSet中添加一个DataTable,看需要而进行选择。添加DataTable后,需向其中添加行和列。
DataSet ds=new DataSet();
DataTable dt=ds.Tables.Add("newTables");
DataColumn col=dt.Columns.Add("newColumn",typeof(int));
col.AllowDBNull=false;
col.MaxLength=4;
col.Unique=true;
上述代码向DataSet中的DataTable中添加名为”newColumn”,类型为int且不为空,最大长度为4和唯一性为真的列。
※ 使用DataSet对象处理数据
(1)修改某一条记录中的某一数据时,首先对DataRow对象使用BeginEdit方法,结束时使用EndEdit方法。
DataRow row=newDataSet.Table[0].Rows[0];
// 把DataSet对象newDataSet中第一表的第一行,赋给row对象
row.BeginEdit();
row[2]=****;
// 修改row对象的第3个数据
row.EndEdit();
(2)为某一记录添加一行数据时,要调用DataTable对象的NewRow方法,创建一个新的空行,再调用DataRow的Add方法将该行添加到表中。
DataRow row1=new DataSet.Tables[0].Row[0];
row[1]=”aaa”;
row[2]=”bbb”;
newDataSet.Tables[0].Rows.Add(row1);
// 把row1增加到Rows中
(3)当删除表中某一行数据时,调用DataRow的Delete方法或DataRowCollection的Remove方法。其区别是Delete方法实际上不是从 DataTable中删除掉一行,而是将其标志删除,仅仅是做个记号,当应用程序调用AcceptChanges方法时才会真正删除;而Remove方法则是真正的从DataRow中删除一行。
DataRow row2=newDataSet.Tables[0].Row[2];
row2.Delete();
newDataSet. AcceptChanges();
// 真正删除row2
DataAdapter对象在DataSet与数据之间起桥梁作用
string strConn="uid=账号;pwd=密码;database=数据库;server=服务器";//SQL Server链接字符串
SqlConnection ConnSql=new SqlConnection (strConn); //Sql链接类的实例化
ConnSql.Open ();//打开数据库
string strSQL="SELECT * FROM 表名1 "; //要执行的SQL语句
SqlDataAdapter da=new SqlDataAdapter(strSQL,ConnSql); //创建DataAdapter数据适配器实例
DataSet ds=new DataSet();//创建DataSet实例
da.Fill(ds,"自定义虚拟表名");//使用DataAdapter的Fill方法(填充),调用SELECT命令
ConnSql.Close ();//关闭数据库
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2