DataTable用於在.net項目中,用於緩存數據,DataTable表示內存中數據的一個表。CSV文件最早用在簡單的數據庫裡,由於其格式簡單,並具備很強的開放性,所以起初被掃圖家用作自己圖集的標記。CSV文件是個純文本文件,每一行表示一張圖片的許多屬性。
在.net項目中運用C#將DataTable轉化為CSV文件,現在提供一個較為通用的方法,具體代碼如下:
/// <summary>
/// 將DataTable轉換成CSV文件
/// </summary>
/// <param name="dt">DataTable</param>
/// <param name="filePath">文件路徑</param>
public static void SaveCsv(DataTable dt, string filePath)
{
FileStream fs = null;
StreamWriter sw = null;
try
{
fs = new FileStream(filePath + dt.TableName + ".csv", FileMode.Create, FileAccess.Write);
sw = new StreamWriter(fs, Encoding.Default);
var data = string.Empty;
//寫出列名稱
for (var i = 0; i < dt.Columns.Count; i++)
{
data += dt.Columns[i].ColumnName;
if (i < dt.Columns.Count - 1)
{
data += ",";
}
}
sw.WriteLine(data);
//寫出各行數據
for (var i = 0; i < dt.Rows.Count; i++)
{
data =string.Empty;
for (var j = 0; j < dt.Columns.Count; j++)
{
data += dt.Rows[i][j].ToString();
if (j < dt.Columns.Count - 1)
{
data += ",";
}
}
sw.WriteLine(data);
}
}
catch (IOException ex)
{
throw new IOException(ex.Message, ex);
}
finally
{
if (sw != null) sw.Close();
if (fs != null) fs.Close();
}
}