如何将Access中的数据导出到文本文件

时间:2014-05-28 08:02:42

标签: vb.net ms-access

网。我的问题是如何使用vb.net将Access中的数据导出到文本文件。在我的数据库中有Table1,它包含FirstName和LastName,所以我希望将这些数据导出到文本文件中。

我偶然发现了这段代码并运行它并在编译时,但没有任何内容导出到文本文件。有人可以用这个来帮助我吗?

    Dim connetionString As String
    Dim cnn As OleDbConnection
    connetionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Scripts\db.mdb;"
    cnn = New OleDbConnection(connetionString)

        cnn.Open()
        Dim AccessCommand As New System.Data.OleDb.OleDbCommand("SELECT * INTO [Text;HDR=No;DATABASE=C:\Scripts\TextFiles].[Result.txt] FROM Table1", cnn)
        cnn.Close()

提前致谢!

1 个答案:

答案 0 :(得分:1)

这个问题被贬低是因为你可以从网站上找到很多例子。

也许您不知道要搜索哪个关键字? 尝试像#34;数据集到文本框"? 还是什么? Export a C# DataSet to a text file更新 我知道你可能是vb的新手。我不会给你确切的代码,但告诉你你能做什么。

首先,声明一个dataTable / dataset(我更喜欢DataTable)来保存你的查询结果。

    Dim dtresult As DataTable = 'Result from DB

然后遍历数据表行并将数据附加到字符串构建器中(或者您希望构建字符串的任何其他方式) 然后将字符串附加到txt文件中。 这是你可以做的事情。

更新2 好的,就像这样。

    Private Sub DataTableToTXT()

    Dim connetionString As String
    Dim cnn As OleDbConnection
    connetionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Scripts\db.mdb;"
    cnn = New OleDbConnection(connetionString)

    Dim dtResult As New DataTable
    cnn.Open()
    'Change the query
    Dim dataAdap As New OleDbDataAdapter("SELECT * FROM TABLE1", cnn)
    dataAdap.Fill(dtResult)
    cnn.Close()

    'Change the path to your desired path
    Dim exportPath As String = "C:\Export\"
    Dim exportFileName As String = "data.txt"

    If Not Directory.Exists(exportPath) Then
        Directory.CreateDirectory(exportPath)
    End If

    Dim writer As New StreamWriter(exportPath + exportFileName)
    Try
        Dim sb As New StringBuilder

        For Each row As DataRow In dtResult.Rows
            sb = New StringBuilder
            For Each col As DataColumn In dtResult.Columns
                sb.Append(row(col.ColumnName))
            Next
            writer.WriteLine(sb.ToString())
        Next
    Catch ex As Exception
        Throw ex
    Finally
        If Not writer Is Nothing Then writer.Close()
    End Try

End Sub