您现在的位置:龙卷风首页 ›› 网络编程 ›› 阅读文章

操作DataTable[asp.net]

在C#中操作DataTable和DataRow:

DataTable在asp.net的程序设计中,占有比较重要的位置。从数据库中取出数据时,通常会使用到SqlDataAdapter,而要把SqlDataAdapter中的数据变为可供Repeater/GridView/DataList等组件使用的DataSource,一般都会把它里面的数据填充入DataSet,变为DataSet中的一张DataTable。事实上,服务器组件使用的数据源,其实质即是DataTable的默认视图。如果持有DataTable,DataSet都可以略去了——如果只有一张DataTable的话,如果有多张,为了管理方便,还是会使用DataSet来统一管理这些表的。

DataTable如此重要,掌据操控它的方法,自然是相当必要的。

下面是常见操作:

1、复制一张表:Copy()
此方法将得到一份一模一样,包含结构和数据的DataTable

2、克隆一张表的数据结构:Clone()
此方法将得到表的结构,但不包含数据。

3、设置主键:PrimaryKey = new DataColumn[] { DataColumn1, DataColumn2...}
从数据库取出的DataTable一般没有主键,只有设置了主键,才能进行Contains(DataRow.ItemArray)的比较,判断表中是否包含某个DataRow

4、历遍DataTable:foreach(DataRow dr in DataTable.Rows)
记住in的后面不是DataTable,而是DataTable.Rows
另外,历遍的过程中,不允许DataRows有变动,即不允许在历遍时删除或新增DataRows到DataTable中!

5、DataTable中的Rows都很忠诚,有了归属之后绝不认二主,即使改变了它的数据也不行!
a. 不能将DataTable1中的Row添加到DataTable2中;
b. 一条独立一DataRow一旦被加入到某DataTable中,它不能再被加入来第二次,即使改变了它所有键的值。

6、把DataTable1中某一行复制到DataTable2中唯一稳键的办法,是进行列值的复制,别妄想用其它更快速的办法。

7、快速获取一个与DataTable具有同样数据结构的DataRow的办法是DataTable.Rows.NewRow()

作者 不见不散 本文仅代表作者观点,与龙卷风资讯网立场无关。

我来说两句

内容/Content