您的位置:首页 > 其它

ADO.NET常用对象详解之:DataSet对象

2008-09-24 17:17 495 查看
ADO.NET常用对象详解之:DataSet对象
2008-03-27 11:04
在ADO.NET中DataSet的作用是为数据源提供一个断开式的存储,而不必关心数据源,操作只用在DataSet中进行就行了。

DataSet中的几个重要对象:
TablesCollection对象:DataSet 里的表用DataTable来表示,一个DataSet里面可以包含多个DataTable,这些DataTable就构成了 TablesCollection对象。每个DataTable中都包含一个ColumnsColleciton和一个RowsCollection对 象。
RelationsCollection对象:各个DataTable之间的关系通过DataRelation来表达,这些DataRelation构成的集合就是RelationsCollection对象。
ExtendedProperties对象:这个对象用来定义特定的信息,比如密码、更新时间等。

1.DataTable对象
创建一个DataTable:




创建DataTable


DataTable MyTable;


MyTable = new DataTable ("Test");


MyTable.CaseSensitive = False;//是否区分大小写


MyTable.MinimumCapacity = 100;//数据库的最小记录空间

创建表列




创建表列


DataTable MyTable;


DataColumn MyColumn;




MyTable = new DataTable ("表名");




MyColumn = MyTable.Columns.Add("列名",typeof(string));


MyColumn = MyTable.Columns.Add("列名",typeof(int));

创建表达式列




示例


//方法一


DataColumn tax = new DataColumn();


tax.DataType = typeof(Currency);


tax.Expression = "total*rate*0.20";




//方法二


MyTable.Columns.Add("tax", typeof(Currency), "total*rate*0.20");

2.DataView对象
DataView就时数据视图,为数据库结构提供了外模式的实现。同时DataView也可以为窗体控件和Web控件提供数据绑定功能,在每一个DataTable中内建了一个DataView为:DataTable.DefaultView()。
创建DataView:
DataView sortedView=new DataView(dataTable);
对DataView进行排序:
dataTable.DefaultView.sort="lastName";
dataTable.DefaultView.sort="lastName,FirstName DESC";
对DataView进行筛选和排序:




通过RowFilter属性设置实现筛选


DataView dv = new DataView(ds.Tables["Authors"]);


dv.RowFilter = "state = 'CA'";


dv.Sort = "au_lname";

3.DataColumn对象




示例


DataColumn colCustomerID = dtCustomers.Columns.Add("CustomerId",typeof(Int32));




colCustomerID.AllowDBNull = false;


colCustomerID.Unique = true;

4.DataRow对象
调用NewRow方法来创建一个新的DataRow对象




创建DataRow对象


DataRow drNewEmployee = dtEmployees.NewRow();




//使用索引或列名操作新行


drNewEmployee(0) = 11;


drNewEmployee(1) = "Smith";




//调用Add方法将行添加到DataRowCollection中


dtEmployees.Rows.Add(drNewEmployee);

对行进行批处理更改:
BeginEdit()开始更改,EndEdit()结束更改,同时将更改结果写入DataSet,CancelEdit(),取消更改
例如:
row.BeginEdit();
对row进行更改
row.EndEdit();

从DataTable中删除DataRow对象:
一:DataRowCollection对象的Remove方法




示例


DataRow drEmployee = dtEmployees.Rows(3);


dtEmployees.Rows.Remove(drEmployee);

二:DataRow对象的Delete方法




示例


drEmployee.Delete;

比较:Remove方法时从DataRowCollection中删除DataRow,而Dalete方法只是对删除的行做标记。
DataRow类包括RowState属性。RowState属性值表示从第一次创建DataTable(或从数据库加载DataTable)开始,行是 否发生更改,如何更改以及通过何种方式更改。属性的可选值:Modified | Detached | Added。

5.创建表关系




示例


//创建DataRelation


DataRelation dr;


DataColumn parentCol;


DataColumn childCol;




parentCol = ds.Tables["Customers"].Columns["CustomerID"];


childCol = ds.Tables["Orders"].Columns.["CustomerID"];


dr = new DataRelation("CustOrders", parentCol, childCol);


ds.Relations.Add(dr);




currentParentRow = ds.Tables["Customers"].Rows[DataGridName.SelectedIndex];


foreach(DataRow r in currentParentRow.GetChildRow("CustOrders"))






{


Lable1.Text += r["OrderID"] + ",";


}

6.绑定数据




示例一


GridView.DataSource = ds;


GridView.DataMember = "Authors";


GridView.DataBind();




示例二


GridView.DataSource = ds.Tables["Authors"];


GridView.DataBind();




示例三


DataView dv = new DataView(ds.Tables["Authors"]);


dv.RowFilter = "state = 'CA'";


GridView.DataSource = dv;


GridView.DataBind();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: