[英]SQL export to CSV file using .Net
我有一个将sql数据集保存到csv文件的应用程序。 我读取数据,将每一行循环保存为字符串,然后将字符串保存为文本文件。 问题是行数超过25k,处理时间很长。 有更快的方法吗?
SqlDataAdapter sSQL2 = new SqlDataAdapter("SelUsersEmails", Conn);
DataSet RS2 = new DataSet();
sSQL2.Fill(RS2, "SelUsersEmails");
s = "UserID,SignUpDate,Email,PayPalEmail,Firstname,Lastname" + Environment.NewLine;
foreach (DataRow u in RS2.Tables["SelUsersEmails"].Rows)
{//loop each
s += u["UserID"].ToString() + "," + u["SignUpDate"].ToString() + "," +["Email"].ToString() + "," + u["NetworkEmail"].ToString() + "," + ["Firstname"].ToString() + "," + u["Lastname"].ToString();
s += Environment.NewLine;
}
有很多事情可以做-除了字符串连接,您还可以使用StringBuilder
来更有效地创建它。
另一个选择是将数据流传输到文件中-这是内存效率最高的方法,尽管可能会占用更多的IO。
但是我建议使用FileHelpers
创建CSV文件。 这是一个受欢迎的库,可以保证正确实现CSV(例如-如果字段包含逗号,您的代码会怎样?)。
为什么不打开准备好写入的文件,并在遍历结果集时写每一行?
这是创建CSV文件的最有效方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.