我有datatable
并将行方式数据导出到文本文件
foreach (DataRow dr in dt1.Tables[0].Rows)
{
WriteToFile("Docket with Docket number {0} and Request ID {1} booked from Agent Account having Login ID {2} on {3}"+ dr["DOCKET_NUMBER"].ToString()+
dr["REQUEST_ID"].ToString()+ dr["CREATED_BY"].ToString()+dr["CREATE_DATE"].ToString());
}
private static void WriteToFile(string text)
{
string path = "E:\\ServiceLog.txt";
using (StreamWriter writer = new StreamWriter(path, true))
{
writer.WriteLine(string.Format(DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss tt")+ " "+ text));
// writer.WriteLine(string.Format(text +));
writer.Close();
}
}
}
我可以一次将整个datatable
导出到文本文件吗?
答案 0 :(得分:2)
您可以使用StringBuilder类及其方法,即AppendFormat
和AppendLine
来读取所有行。之后只需调用方法WriteToFile
StringBuilder sb = new StringBuilder();
foreach (DataRow dr in dt1.Tables[0].Rows)
{
sb.AppendFormat("Docket with Docket number {0} and Request ID {1} booked from Agent Account having Login ID {2} on {3}", dr["DOCKET_NUMBER"].ToString(), dr["REQUEST_ID"].ToString(), dr["CREATED_BY"].ToString(), dr["CREATE_DATE"].ToString());
sb.AppendLine();
}
WriteToFile(sb);
答案 1 :(得分:1)
你可以这样做..
var lines = dt1.Tables[0].AsEnumerable().Select(dr => "Docket with Docket number {0} and Request ID {1} booked from Agent Account having Login ID {2} on {3}" + dr["DOCKET_NUMBER"].ToString() +
dr["REQUEST_ID"].ToString() + dr["CREATED_BY"].ToString() + dr["CREATE_DATE"].ToString());
File.WriteAllLines("YourFilePath",lines);
答案 2 :(得分:1)
写入xml怎么样? Xml是一个文本,因此符合条件。
使用DataTable.WriteXml方法进行书写,并使用DataTable.ReadXml方法从文本文件中读取数据。
答案 3 :(得分:0)
我从未将Datatable写入txt文件,但我建议您尝试使用ClosedXml并立即将Datatable写入csv文件。 ClosedXml是一个很棒的库,到目前为止我在生产中运行它没有问题,你应该查看他们的github页面,了解如何使用和/或扩展它。