使用.Net将SQL导出到CSV文件

时间:2012-02-14 21:23:29

标签: sql csv export-to-excel

我有一个将sql数据集保存到csv文件的应用程序。我读取数据,将每行保存到一个字符串中,然后将字符串保存到文本文件中。问题是行数超过25,000,处理时间很长。有更快的方法吗?

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;

}

2 个答案:

答案 0 :(得分:1)

有许多事情可以做 - 而不是字符串连接,您可以使用StringBuilder更有效地创建它。

另一种选择是在你进行时将数据流传输到文件 - 这是最节省内存的方式,但可能会更加IO密集。

但我建议使用FileHelpers来创建CSV文件。这是一个受欢迎的库,可以保证正确实现CSV(例如,如果字段包含逗号,您的代码会发生什么?)。

答案 1 :(得分:0)

为什么不打开文件准备写入并在循环结果集时写入每一行?

这是创建CSV文件的最有效方式。