【问题标题】:How do I export a DataTable to new DBF file in vb.net?如何将 DataTable 导出到 vb.net 中的新 DBF 文件?
【发布时间】:2018-05-10 22:20:02
【问题描述】:

我有一个数据表,其中填充了来自其他数据表的各种数据,并且字段名称经常更改。我的问题是如何将此 DataTable 导出到 DBF 文件?

这是我想出的,但它根本不知道如何从 DataTable 中提取数据...

Dim dBaseConnection As New System.Data.OleDb.OleDbConnection(“Provider=Microsoft.Jet.OLEDB.4.0;” & “Data Source=” & path & “;” & “Extended Properties=dBase IV”)

        dBaseConnection.Open()

        Dim SQLCreateCommand As String
        SQLCreateCommand = "SELECT * INTO NewTable From " & DataTable
        Dim dBaseCommand As New System.Data.OleDb.OleDbCommand(SQLCreateCommand, dBaseConnection)

        dBaseCommand.ExecuteNonQuery()
        dBaseConnection.Close()

【问题讨论】:

标签: vb.net datatable dbf


【解决方案1】:

我使用从这里下载的 FASTDBF 库参考解决了这个问题:https://github.com/SocialExplorer/FastDBF

 Private Sub ExportListButton_Click(sender As Object, e As EventArgs) Handles ExportListButton.Click

    Dim ExportedDbf = New DbfFile(Encoding.GetEncoding(1252))
    ExportedDbf.Open(Path.Combine("C:\WORK\A_TEST", "Combined.dbf"), FileMode.Create)

    For Each col In CombinedDataTable.Columns
        ExportedDbf.Header.AddColumn(New DbfColumn(col.ToString, DbfColumn.DbfColumnType.Character, 50, 0))
    Next

    Dim Counter As Integer = 0

    For Each row In CombinedDataTable.Rows

        Dim ColumnCounter As Integer = 0
        Dim NewRec = New DbfRecord(ExportedDbf.Header)

        For Each col In CombinedDataTable.Columns

            NewRec(ColumnCounter) = CombinedDataTable.Rows(Counter)(col).ToString
            ColumnCounter = ColumnCounter + 1
        Next

        ExportedDbf.Write(NewRec, True)
        Counter = Counter + 1

    Next

    ExportedDbf.Close()

End Sub

【讨论】:

    猜你喜欢
    • 2010-09-24
    • 2016-04-16
    • 2018-12-11
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 2011-12-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多