ADO.NET对象的构造(4)_DataColumn

DataColumn 构造

n Public Sub New()’ 刚创建时,新的 DataColumn 对象没有默认的 ColumnName 或 Caption 属性。但是,在添加到 DataColumnCollection 时,就给予列默认名称( “Column1” 、 “Column2” 等等)。

n Public Sub New(ByVal columnName As String )

n Public Sub New(ByVal columnName As String ,ByVal dataType As Type )

n Public Sub New(ByVal columnName As String ,ByVal dataType As Type ,ByVal expr As String )

n Public Sub New(ByVal columnName As String ,ByVal dataType As Type ,ByVal expr As String ,ByVal type As MappingType )

参数

1. columnName 一个字符串,它表示要创建的列的名称。如果设置为空引用( Visual Basic 中为 Nothing )或空字符串 ("") ,则当添加到列集合中时,将提供一个默认名称。

2. dataType 支持的 DataType 。

3. expr 用于创建该列的表达式。

4. type MappingType 值之一。指定如何映射 DataColumn 。在获取或设置 DataColumn 的 ColumnMapping 属性时,使用 MappingType 枚举。在 DataSet 上调用 WriteXml 方法以将数据和架构作为 XML 文档写出时,该属性确定如何写列的值。

成员名称

|

说明

---|---

Attribute

|

将列映射到 XML 属性。

Element

|

将列映射到 XML 元素。

Hidden

|

将列映射到内部结构。

SimpleContent

|

将列映射到 XmlText 节点。

DataColumn 是用于创建 DataTable 的架构的基本构造块。通过向 DataColumnCollection 中添加一个或多个 DataColumn 对象来生成这个架构。

每个 DataColumn 都有 DataType 属性,该属性确定 DataColumn 所包含的数据的种类。例如,可以将数据类型限制为整数、字符串或小数。由于 DataTable 所包含的数据通常合并回其原始数据源,因此必须使数据类型与数据源中的数据类型匹配。

诸如 AllowDBNull 、 Unique 和 ReadOnly 之类的属性对数据的输入和更新施加限制,从而有助于确保数据完整性。还可以使用 AutoIncrement 、 AutoIncrementSeed 和 AutoIncrementStep 属性来控制数据自动生成。

还可以通过创建 UniqueConstraint 并将其添加到 DataColumn 所属的 DataTable 的 ConstraintCollection ,以确保 DataColumn 中的值是唯一的。

若要创建 DataColumn 对象之间的关系,请创建 DataRelation 对象并将其添加到 DataSet 的 DataRelationCollection 。

可以使用 DataColumn 对象的 Expression 属性来计算列中的值或创建聚合列。

示例

Private Sub CreateComputedColumn(ByVal myTable As DataTable)

    Dim myTable As DataTable = new DataTable("myTable") 

Dim myColumn As DataColumn

Dim dt As System.Type

Dim strExpr As String

myColumn = New DataColumn("id")

With myColumn

.DataType = System.Type.GetType("System.Int32")

.AutoIncrement = True

.AutoIncrementSeed = 1

.AutoIncrementStep = 1

.ReadOnly = True

End With

myTable.Columns.Add(myColumn)

dt = System.Type.GetType("System.Int32")

myColumn = New DataColumn("Quantity", dt)

With myColumn

.AllowDBNull = False

End With

myTable.Columns.Add(myColumn)

    myColumn = New DataColumn 


    myColumn.DataType = System.Type.GetType("System.Decimal") 


    myColumn.AllowDBNull = False 


    myColumn.Caption = "Price"  


    myColumn.ColumnName = "Price" 


    myColumn.DefaultValue = 25 


    myTable.Columns.Add(myColumn) 

dt = System.Type.GetType("System.Decimal")

myColumn = New DataColumn("Tax", dt, "Price * .0862")

With myColumn

.AutoIncrement = False

.ReadOnly = True

End With

myTable.Columns.Add(myColumn)

dt = System.Type.GetType("System.Decimal")

strExpr = "Price * Quantity"

' Create the column, setting the type to Attribute.

myColumn = New DataColumn("Total", dt, strExpr, MappingType.Attribute)

myColumn.AutoIncrement = False

myColumn.ReadOnly = True

myTable.Columns.Add(myColumn)

<SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #333333;

Published At
Categories with Web编程
Tagged with
comments powered by Disqus