总结.NET开发中ADO.NET的应用(2)_.Net教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:关于Gridview的多种使用方法总结
asp.net中 Gridview的多种使用方法总结,具体如下面 截图,并包括详细源代码注释,需要的请下载。 1:在Gridview中无须编写后台代码,直接实现增除删改 2:在Gridview中添加新记录 3:在Gridview中实现编辑和更新操作 4:在Gridview中实现一次性更新所有记录


二、DataView 
DataView表示用于排序、筛选、搜索、编辑和导航的 DataTable 的可绑定数据的自定义视图。可以将DataView同数据库的视图类比,不过有点不同,数据库的视图可以跨表建立视图,DataView则只能对某一个DataTable建立视图。DataView一般通过DataTable.DefaultView 属性来建立,再通过通过RowFilter 属性和RowStateFilter 属性建立这个DataTable的一个子集。 
RowFilter属性用来筛选要查看DataTable中哪些行的表达式,这个表达式同上面所说的建立计算列的表达式相同。例如:"LastName = ’Smith’",这就是只查看列LastName的值为’Smith’的那些数据行。 
RowStateFilter 属性用来设置DataView中的行状态筛选器,上面介绍DataRow时介绍了DataRow的状态,一个DataRow可能有五种状态,RowStateFilter就是可以通过这些状态来筛选要查看的行集。其实DataRow不仅有五种状态,DataRow还有版本的问题,比如当DataRow的状态为Modified,即这行已经被修改了,这时这个DataRow就会有两个版本,Current版本和Original版本(修改前的)。实际上RowStateFilter属性是综合了DataRow的状态和版本来筛选的(RowStateFilter确省值是CurrentRows)见下表: 
成员名称/说明
Added:一个新行。
CurrentRows:包括未更改行、新行和已修改行的当前行。
Deleted:已删除的行。
ModifiedCurrent:当前版本,原始数据(请参阅ModifiedOriginal)的修改版本。
ModifiedOriginal:原始版本(尽管它后来已被修改并以ModifiedCurrent 形式存在)。 
None:无。 
OriginalRows:包括未更改行和已删除行的原始行。
Unchanged:未更改的行。 
DataView.Count属性得到的计数是在应用了 RowFilter 和 RowStateFilter 之后,获取 DataView 中记录的数量。 
DataView是建立在DataTable基础上的,DataView.Table 属性可以得到此DataView对应的那个DataTable。DataView的行叫DataRowView,可以从DataRowView直接通过DataRowView.Row 属性得到此DataRowView对应的DataRow。
三、DataGrid 
这里说的DataGrid是winform中的DataGrid,一般都是跟DataView绑定来显示DataTable中的数据,和修改DataTable中的数据。
DotNet的DataGrid的功能强大,可是在使用上与以前的习惯不太一样,有时还比较麻烦,所以很多人都对这个DataGrid感到有些摸不着头脑,有一种无从下手的感觉,其实把一些概念搞清楚了许多问题就会迎刃而解了。 
DataGrid通过DataSource和DataMember 属性来绑定其要显示的数据源。数据源一般是DataTable、DataView、DataSet等,不过将这些数据源绑定到DataGrid时实际上是绑定的DataView。若数据源是DataTable时,实际上是绑定了此DataTable的DefaultView,若数据源是DataSet时,则可以向DataMember属性设置一个字符串,该字符串指定要绑定到的表,然后再将DataMember指定的那个DataTable的DefaultView绑定到DataGrid。 
所以DataGrid实际显示的是DataTable经过筛选的DataView。 
◆ DataGrid以何种方式显示DataView的数据 
DataGrid绑定到一个DataView后,由DataGrid.TableStyles中的DataGridTableStyle 对象的集合来控制这个DataView的哪些列要显示,列的宽度多少,列标头的文本是什么等等。确省的DataGrid.TableStyles中不包含任何对象,这时DataGrid将会按照DataView列的顺序将所有的列都显示出来。一般应用中都会设置TableStyles来控制显示的内容及格式。 
例如DataGrid绑定到一张叫order的DataTable,这个DataTable包含了OrderID、CustomerID、OrderDate、ShipName、ShipAddress等字段,可以看到DataGrid将会按照DataView列的顺序将所有的列都显示出来 
我们只想显示OrderID、CustomerID、OrderDate这三个字段,并且想将OrderID的列表头显示为“订单号”,CustomerID显示为“客户号”,OrderDate显示为“订单日期”,这就要用TableStyles来控制了。
新建一个TableStyle,将此TableStyle.MappingName属性对应到这个TableStyle要控制的那个DataTable的名字: 
DataGridTableStyle myTableStyle = new DataGridTableStyle(); 
myTableStyle.MappingName = "myDateTable"; 
再建立三个DataGridColumnStyle,分别用来控制将要显示的三个列: 
DataGridColumnStyle myColumnStyle1 = new DataGridTextBoxColumn(); 
myColumnStyle1.MappingName = "OrderID"; 
myColumnStyle1.HeaderText = "订单号"; 
DataGridColumnStyle myColumnStyle2 = new DataGridTextBoxColumn(); 
myColumnStyle2.MappingName = "CustomerID"; 
myColumnStyle2.HeaderText = "客户号"; 
DataGridColumnStyle myColumnStyle3 = new DataGridTextBoxColumn(); 
myColumnStyle3.MappingName = "OrderDate"; 
myColumnStyle3.HeaderText = "订单日期"; 
将这三个DataGridColumnStyle添加到TableStyle中: 
myTableStyle.GridColumnStyles.Add(myColumnStyle1); 
myTableStyle.GridColumnStyles.Add(myColumnStyle2); 
myTableStyle.GridColumnStyles.Add(myColumnStyle3);  
最后将TableStyle添加到DataGrid中:
dataGrid1.TableStyles.Add(myTableStyle); 
将TableStyle添加到DataGrid后,再绑定数据源。

分享:String.Empty、NULL、“”的不同之处
在asp.net(c#)中 String.Empty、NULL、 3个语法 经常使用,作用是判断字符串是否为空。 本文就它们彼此的不同之处做一粗略说明。 string.Empty就相当于 一般用于字符串的初始化 比如: stringa; Console.WriteLine(a);//这里会报错,因为没有初始化a 而下

来源:模板无忧//所属分类:.Net教程/更新时间:2010-05-21
相关.Net教程