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;