第一章 ADO.NET非连接类概述

1.1DataTable对象  

Dim auto As New DataTable("Auto")

 

1.1.1添加DataColumn对象以创建一个模式  

代码
        Dim vin As New DataColumn("Vin")
        vin.DataType 
= GetType(String)
        vin.MaxLength 
= 23
        vin.Unique 
= True
        vin.AllowDBNull 
= False
        vin.Caption 
= "VIN"
        
auto.Columns.Add(vin)

        
Dim make As New DataColumn("Make")
        make.MaxLength 
= 35
        make.AllowDBNull 
= False
        
auto.Columns.Add(make)

        
Dim year As New DataColumn("Year"GetType(Integer))
        
year.AllowDBNull = False
        
auto.Columns.Add(year)

        
Dim yearMake As New DataColumn("Year and Make")
        yearMake.MaxLength 
= 70
        yearMake.Expression 
= "year + ' ' + make"
        
auto.Columns.Add(yearMake)

 

 

 1.1.2 创建主键列

 

auto.PrimaryKey = New DataColumn() {vin}

 

 

1.1.3创建用于存储数据的DataRow对象

1.1.3.1向DataTable添加数据

 

代码
Dim newAuto As DataRow = auto.NewRow
newAuto(
"Vin"= "123456789abcd"
newAuto(
"make"= "ford"
newAuto(
"Year"= 2002
auto.Rows.Add(newAuto)

auto.Rows.Add("98765""buick"2001)

auto.LoadDataRow(New Object() {"987654321xyz""Jeep"2002}, LoadOption.OverwriteChanges)

 

 

1.1.3.2使用DataRowState查看DataRow对象的状态

代码
Private Function GetDataRowInfo(ByVal row As DataRow, ByVal columnName As StringAs String
  Dim retVal As String = String.Format("RowState: {0} ", row.RowState) & vbCrLf

  Dim versionString As String

  For Each versionString In System.Enum.GetNames(GetType(DataRowVersion))
    Dim version As DataRowVersion = CType(System.Enum.Parse(GetType(DataRowVersion), versionString), DataRowVersion)

    If row.HasVersion(version) Then
      retVal 
&= String.Format("Version: {0} value: {1}", version, row(columnName, version)) & vbCrLf
    Else
      retVal 
&= String.Format("Version: {0} does not exist.", version) & vbCrLf
    End If
  Next

  Return retVal
End Function

 

1.1.4枚举DataTable对象


        Dim buffer As New System.Text.StringBuilder

        
For Each dc As DataColumn In auto.Columns
            buffer.Append(
String.Format("{0,15} ", dc.ColumnName))
        
Next

        buffer.Append(vbCrLf)

        
For Each dr As DataRow In auto.Rows
            
For Each dc As DataColumn In auto.Columns
                buffer.Append(
String.Format("{0,15} ", dr(dc)))
            
Next
            buffer.Append(vbCrLf)
        
Next

相关文章: