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   String Optional   ByVal  seed  As   Integer   =   0 Optional   ByVal  [ step As   Integer   =   1 As  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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值