簡體   English   中英

使用.Net將SQL導出到CSV文件

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM