[英]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.