Как экспортировать DataTable в новый файл DBF в vb.net? - PullRequest
0 голосов
/ 11 мая 2018

У меня есть DataTable, который я заполнил различными данными из других таблиц, и имена полей часто меняются.У меня вопрос, как бы я экспортировать этот 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()

1 Ответ

0 голосов
/ 11 мая 2018

Я решил это с помощью ссылки на библиотеку 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
...