簡體   English   中英

如何從MS Access復制表格並以.txt或其他格式更改?

[英]How to Copy a table from MS Access and Change in .txt or other format?

我正在為嵌入式PC編寫程序。 到現在為止,我一直在普通PC上編寫代碼,並使用MS Access作為數據庫,用於直接從Access讀取。

    public static DataTable GetAccessDataTable(string TableName, string DatabaseName)
    {
        if (TableName == null) return null;
        if (TableName.Length == 0) return null;
        try
        {   // Iniciate DB connection

            string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Application.StartupPath.ToString() + @"\" + DatabaseName;

            OleDbConnection DbConnect = new OleDbConnection(connectionString);
            OleDbDataAdapter DataAdapter = new OleDbDataAdapter("SELECT * from " + TableName, DbConnect);

            DataTable DT = new DataTable(TableName);
            DataAdapter.Fill(DT);

            return DT;
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
            return null;
        }
    }

現在的問題是,我的嵌入式PC中沒有Access,因此我無心安裝它。 因此,我想將Access Datatables轉換為.txt或類似的內容。 在哪里可以使用DataTables(來自Windows.Data)。 我不希望在嵌入式PC中至少有一個數據庫進行測試。 在將來,數據庫將存在,但尚未由我的項目決定,我想在Target硬件上測試代碼。 請幫忙。

是否考慮使用SQL Lite? 或者,我建議使用XML文件,因為它易於移植到DataTables中。

DataTable.WriteXml()

如果數據表中有數據,則可以使用DataTable.WriteXml以XML格式寫入文件。 這里的示例,或者您可以使用stringbuilder streamwriter將其寫為csv文件

 StringBuilder result = new StringBuilder();
 //write columns
    for (int i = 0; i < dt.Columns.Count; i++)
    {
        result.Append(dt.Columns[i].ColumnName);
        if(i == dt.Columns.Count - 1)
        {
        result.Append("\n");
        }
        else
        {
        result.Append(",");
        }

    }
     //write rows       
    foreach (DataRow row in dt.Rows)
    {
        for (int i = 0; i < dt.Columns.Count; i++)
        {
            result.Append(row[i].ToString());
           if(i == dt.Columns.Count - 1)
           {
            result.Append("\n");
           }
           else
           {
           result.Append(",");
           }
        }
    }

    //write result to a file        
   StreamWriter file = new StreamWriter(@"your file");
   file.WriteLine(result.ToString());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM