[英]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以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.