一.DataSet对象
DataSet是断开与数据库连接,可以被使用的数据记录在内存中。DataSet充当一个本地的小型数据库,不需要对其操作不需要连接数据库。
DataSet对象的特点:
- 使用DataSet对象时无需跟数据库直接交互
- DataSet对象存储从数据库检索的数据的对象
- DataSet对象可以是零个或多个表对象的集合,及其表关系结构
- DataSet对象即可容纳数据库数据,也可容纳非数据库数据
二.DataSet的结构,常用属性和方法
DataSet是由数据表及其表关系组成,具有层次结构。
DataSet层次结构中的类
类名 说明
DataTableCollection 数据集,包含所有的DataTable对象
DataTable 数据集中的一个表
DataColumnCollection DataTable中所有列
DataColumn DataTable中的一个列
DataRowCollection DataTable中所有行
DataRow DataTable的一个行
DataSet中层次结构图:
DataSet常用到属性:
属性 说明
Tables 用于检索数据集中包含的表集合
DataSetName 获取或设置DataSet对象名称
方法 说明
Clear 清除数据集中包含的所有表的所有行
HasChanges 返回一个布尔值,指示数据是否发生改变
更详细请查看http://msdn.microsoft.com/zh-cn/library/system.data.dataset.aspx
代码:
DataSet ds = new DataSet;
Sqlconnect sql=new SqlConnection(connectionstring);
SqlDataAdapter da = new SqlDataAdapter("select * frion tablename",sql);
da.Fill(ds,"练习");
三.DataTable,Datacolumn和DataRow
1.DataTable对象的常用属性:
属性 说明
Colums 表示列的集合或DataTable包含的DataColumn对象
Constraints 表示特定DataTable的约束集合
DataSet 表示DataTable所属的数据集
PrimaryKey 表示DataTable的主键
Rows 表示行的集合或DataTable所包含的DataRow对象
HasChanges 返回一个布尔值,表示数据集是否发生更改
DataTable对象常用的方法:
方法: 说明
AcceptChanges 提交对表所做的所有改变
NewRow 添加新的DataRow
DataTable对象常用的事件:
事件 说明
ColumnChanged 修改该列时触发
RowChanged 成功编辑行后触发
RowDeleted 成功删除行触发
创建表:
a. DataTable dt = new DataTable("数据表");//直接创建表
b. DataSet ds = new DataSet();//向DataSet中添加表
DataTable dt = ds.Tables.Add("数据表");
2.DataColumn对象
DataColum常用的属性:
属性 说明
AllowDBNull 是否允许Null值
ColumnName 获取或设置列名
DataType 获取或设置列的数据类型
DefaultValue 获取或修改列的默认值
Table 表示所属的Table
Unique 是否唯一性
实例:
DataTable dt = new DataTable("student");
DataColumn dc = new DataColumn();
dc = dt.Columns.Add("id");
dc.DataType = typeof(Int32);
dc.AllowDBNull = false;
dc.DefaultValue = 25;
3.DataRow对象
DataRow对象常用的属性:
属性 说明
Item DataRow的指定列的值
RowState 表示行的当前状态
Table 表示DataRow所属的DataTable对象
DataRow常用的方法
方法 说明
AcceptChanges 用于提交自上次调用 AcceptChanges 以来对该行进行的所有更改。
Delete 删除行数据
RejectChanges 拒绝自上次调用 AcceptChanges 以来对该行进行的所有更改。
<span style="font-family:Microsoft YaHei UI, Microsoft YaHei, SimSun, Segoe UI, Lucida Grande, Verdana, Arial, Helvetica, sans-serif;color:#2a2a2a;"> DataSet dataset = new DataSet("小型数据库");
DataTable datatable = dataset.Tables.Add("student");
DataColumn datacolumid = datatable.Columns.Add();
datacolumid.ColumnName = "id";
datacolumid.DataType = typeof(Int32);
datacolumid.AllowDBNull = false;
datacolumid.Unique = true;
DataColumn datacolumname = datatable.Columns.Add("name",typeof(string));
datacolumname.AllowDBNull = false;
datacolumname.DefaultValue = "name";
DataRow datarow = datatable.NewRow();/*必须使用 NewRow 方法才能创建与 DataTable 具有相同架构的新 DataRow 对象。在创建 DataRow 之后,可以通过 DataTable 对象的 Rows 属性将其添加到 DataRowCollection 中。*/
datarow["id"] = 2014;
datarow["name"] = "小明";
datatable.Rows.Add(datarow);//Add添加行</span>