it168旗下专业技术社区

2013 年 2 月 3 日3440

本帖最后由 wodsfsdfs 于 2013-2-1 18:07 编辑

DataTable是DataSet中一个对象,它与数据库表的概念基本一致,简单起见,你就可以把它认成是数据库DataSet中的表。1. 创建一个DataTable

DataTable创建器跟使用DataSets创建器差不多,可以跟一个参数,用以指定表名。例如:

dim MyTable as DataTable MyTable = New DataTable("Test") MyTable.CaseSensitive = False

MyTable.MinimumCapacity = 100 其中CaseSensitive属性指定是否区分大小写,这里指定不区分,CaseSensitive属性是否打开对于查找、排序、过滤等操作有很大的影响。MinimumCapacity属性指定创建时保留给数据表的最小记录空间。另外还有一个TableName的属性,它指定数据表的名称,例如下面两种方式创建的表是一样的。

1) dim MyTable as DataTable MyTable=New DataTable(“test”)

2) dim MyTable as New DataTable MyTable.TableName=”test”

2. 创建表列

一个DataTable又含有一个表列(Columns)的集合。表列的集合形成了表的数据结构,就如同数据库概念中,字段对应于表一样。我们可以使用Columns集合的Add方法向表中添加表列。该方法带有两个参数,一个是表列名,一个是该列的数据类型。由于我们通常在定义表列时,是使用.net构架中的数据类型,而非数据库的数据类型,所以需要使用GetType方法把.net架构的数据类型转换成数据库中的数据类型。例如:我们建立一个客户信息表(Customer),它含有三个字段:

用户姓名(CUNM) 字符型 客户编号(CUNO) 字符型用户序号(IDNO) 整型

Dim MyTable as DataTable Dim MyColumn as DataColumn

MyTable = new DataTable("Customer") MyColumn = MyTable.Columns.Add("CUNM",GetType("String") )

MyColumn = MyTable.Columns.Add("CUNO",GetType("String") ) MyColumn = MyTable.Columns.Add("IDNO",GetType("int32") ) 3. 创建表达式列

asp.net甚至允许创建一些依赖于其他表达式的表列,这样做的好处是,体现了表列之间的某种自然的联系。要创建表达式表列,首先要指定表列的DataType属性,它表明了表达式运算结果的数据类型;然后设置表列的Expression属性为所需的表达式。

例如:一个很明显的例子是利息税,它为总金额*税率*0.2。在同一表中总金额为total列,税率为rate列,利息税为tax列。它们的关系如下:

Dim tax As DataColumn = New DataColumn tax.DataType = GetType("Currency") tax.Expression = "total *rate*0.20"

也可以: MyTable.Columns.Add(“tax”,GetType(“Currency”),”total*rate*0.20)

4. 使用自增列在一些数据库中,我们会发现有这样一种数据类型,通常称作系统序号,当我们向表中增加一条记录时,该字段会自动累加,以后我们可以通过这一唯一序号来标识每一条记录。在asp.net中,同样也可以实现类似的功能,这就是自增表列的使用。

定义自增表列实际上是对DataColumn对象的三个属性:AutoIncrement、AutoIncrementSeed、AutoIncrementStep的使用。 AutoIncrement属性,指定是否打开自增功能。 AutoIncrementSeed属性,指定自增的起始值。

AutoIncrementStep属性,指定自增的步长。例如: dim MyTable as New DataTable

dim MyColumn as DataColumn MyColumn=MyTable.Columns.Add(“Sqno”,GetType(“int32”))

MyColumn.AutoIncrement=True ‘打开自增功能MyColumn.AutoIncrementSeed=0

‘自增从0值起始MyColumn.AutoIncrementStep=2 ‘每次增长2

5. 建立主键值通常在一个表中,我们会定义一个主键,它能够唯一标识该表中的每一条记录。主键可以为表中的一个表列,也可以为几个表列的集合。主键不能为空,而且不能重复,我们可以用DataColumn的两个属性AllowNull和Unique来实现(DataColumn1.AllowNull=False DataColumn1.Unique=True)。最后DataTable对象的PrimaryKey属性指定主键。

例如: dim MyColumn as DataColumn dim MyTable as DataTable

… MyColumn=MyTable.Columns(“CUNO”) MyColumn.AllowNull=False MyColumn.Unique=True

MyTable.PrimaryKey=MyColumn 当键值为几个表列的集合时:

dim MyColumn as DataColumn() MyColumn(0)=MyTable.Columns(“col1”)

MyColumn(1)=MyTable.Columns(“col2”) …

MyTable.PrimaryKey=MyColumn

来自rudltiy514的贴子

0 0