2011年7月9日 星期六

.net ADOX 為現有的MDB資料表增加欄位

上網找了MSDN的範例,不過都不是自己要的,我的需求是在現存的資料表增加欄位。
因在Web上增加欄位,非主機端還是用Code來操作會比較簡單。
Code在下面,提供大家參考,適合自己需求的 要再改一下。

記得先加入參考[Microsoft ADO Ext. 2.8 for DDL.....]
然後引用
 IMPORTS   ADOX


直接呼叫下列程序
  Add_ColumToExistMdb("資料表名稱", "要增加的資料欄位", "資料型態(自行定義)")

'增加 資料庫 欄位 ()
    Sub Add_ColumToExistMdb(ByVal TableName As String, ByVal ColName As String, ByVal ColType As String)
        'TableName 資料表名稱
        'ColName 欄位名稱
        'ColType 欄位型態
        Dim Cn = New ADODB.Connection
        Cn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & My.Application.Info.DirectoryPath & "\My.mdb")
        Dim cat As New ADOX.Catalog
        Dim tbl As New ADOX.Table
        Dim xCol As New ADOX.Column
        Dim blnColAlreadyExist As Boolean = False '判斷欄位是否存在的


        Dim TranCode As Integer  '轉換後的數字Enum
        cat.ActiveConnection = Cn
        tbl = cat.Tables(TableName) '針對現存的表格來做增加欄位的動作!
        '在增加特定欄位前先偵測[欄位名稱]是否存在?
        For Each xCol In tbl.Columns
            'Debug.Print(xCol.Name.ToString)
            If xCol.Name = ColName Then
                blnColAlreadyExist = True
                Exit For
            End If
        Next
        '欄位沒有重複!
        If blnColAlreadyExist = False Then
            Select Case ColType '自訂欄位定義....
                Case "long"
                    TranCode = 4 'DataTypeEnum.adSingle

            End Select
            '增加欄位
            tbl.Columns.Append(ColName, TranCode)
            cat.Tables.Refresh()
        End If

        Cn.Close()
        Cn = Nothing


    End Sub

沒有留言:

張貼留言

追蹤者