0
使用FileHelpers.CsvEngine.DataTableToCsv
將數據表導出爲CSV時。我無法像「FileHelperEngine
」那樣勾選「BeforeWriteRecord
」事件。是否有可能在CSVEngine類中掛鉤操作。如何將FileHelper.CSVEngine綁定到BeforeWriteRecord事件
使用FileHelpers.CsvEngine.DataTableToCsv
將數據表導出爲CSV時。我無法像「FileHelperEngine
」那樣勾選「BeforeWriteRecord
」事件。是否有可能在CSVEngine類中掛鉤操作。如何將FileHelper.CSVEngine綁定到BeforeWriteRecord事件
CSVEngine
類當前不支持(版本2.9.9)支持BeforeWriteRecord
事件。我認爲原因是BeforeWriteRecordEventArgs
預計從DataTable
導出時不相關的FileHelpers記錄類。
DataTableToCsv
的代碼是一種簡單的靜態方法,因此很容易提供您自己的替代品。該代碼是here和下面引用:
public static void DataTableToCsv(DataTable dt, string filename, CsvOptions options)
{
using (var fs = new StreamWriter(filename, false, options.Encoding, EngineBase.DefaultWriteBufferSize))
{
foreach (DataRow dr in dt.Rows)
{
object[] fields = dr.ItemArray;
for (int i = 0; i < fields.Length; i++)
{
if (i > 0)
fs.Write(options.Delimiter);
fs.Write(options.ValueToString(fields[i]));
}
fs.Write(StringHelper.NewLine);
}
fs.Close();
}
}
作爲一個臨時的解決方案,我修改了CSVEngine.DataTableToCSV PROC接受一個新的參數函數功能<對象[],對象[]>作爲回調溫控功能爲BeforeWriteRecord等事件。 – AbrahamJP 2011-04-20 17:22:23