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

使用.Net将SQL导出到CSV文件,sql,csv,export-to-excel,Sql,Csv,Export To Excel,我有一个将sql数据集保存到csv文件的应用程序。我读取数据,将每行循环保存为字符串,然后将字符串保存为文本文件。问题是有超过25k行,需要很长时间来处理。有没有更快的方法 SqlDataAdapter sSQL2 = new SqlDataAdapter("SelUsersEmails", Conn); DataSet RS2 = new DataSet(); sSQL2.Fill(RS2, "SelUsersEmails"); s = "UserID,SignUpDate,Email,P

我有一个将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;

}

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

另一个选择是在进行时将数据流传输到文件中——这是最有效的内存使用方式,但可能会占用更多的IO


但是我建议使用创建CSV文件。它是一个流行的库,保证正确实现CSV(例如,如果字段包含逗号,代码会发生什么情况?)

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

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