HOW TO:给DataTable添加一自增列至首列

Author:水如烟

 

示例

        Dim db As New LzmTW.Data.AccessOleDbDatabase("G:/OfficeNorthwind.mdb")

        
Dim cm As DbCommand = db.CreateCommand("Employees")
        cm.Connection.Open()
        
Dim table As DataTable = cm.ExecuteReader.GetSchemaTable
        cm.Connection.Dispose()
        cm.Dispose()


        
Dim nowTable As DataTable = TableHelper.AddAutoIncreaseColumn(table, "NO"1)

代码:

Public Class TableHelper
    
Sub New()
    
End Sub

    
Public Shared Function AddAutoIncreaseColumn(ByVal table As DataTable, ByVal columnName As StringOptional ByVal seed As Integer = 0Optional ByVal [stepAs Integer = 1As DataTable
        
Dim autoIncreaseColumn As New DataColumn(columnName, GetType(Integer))
        
With autoIncreaseColumn
            .AutoIncrement 
= True
            .AutoIncrementSeed 
= seed
            .AutoIncrementStep 
= [step]
            .ReadOnly 
= True
        
End With

        
Dim tmpTable As DataTable = table.Clone
        tmpTable.PrimaryKey = Nothing

        
Dim result As New DataTable(table.TableName)

        result.Columns.Add(autoIncreaseColumn)

        
Dim tmpCol As DataColumn
        
For Each col As DataColumn In table.Columns
            tmpCol 
= tmpTable.Columns(col.ColumnName)
            tmpTable.Columns.Remove(tmpCol)
            result.Columns.Add(tmpCol)
        
Next

        result.Merge(table)

        
Return result
    
End Function
End Class
©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值