2012-12-02 38 views
0

我寫了一個函數來保存數據表以CSV文件格式。但問題是,當我調用函數時,函數刪除舊數據並寫入新數據。我只想保留我的舊數據並在文件的末尾寫入新數據。我怎樣才能做到這一點?我的作用是:中修改我的DataTable的功能,以CSV

 public void CreateCSVFile(DataTable dt, string strFilePath, bool isFirstRowHeader) 
    { 
     StringBuilder sb = new StringBuilder(); 

     if (isFirstRowHeader == true) 
     { 
      var columnNames = dt.Columns.Cast<DataColumn>().Select(column => column.ColumnName).ToArray(); 
      sb.AppendLine(string.Join(",", columnNames)); 
     } 

     foreach (DataRow row in dt.Rows) 
     { 
      var fields = row.ItemArray.Select(field => field.ToString()).ToArray(); 
      sb.AppendLine(string.Join(",", fields)); 
     } 

     File.WriteAllText(strFilePath, sb.ToString()); 
    } 

回答

1

File.AppendAllText代替File.WriteAllText將追加到現有CSV文件的末尾。當然,如果文件已經存在,則需要避免寫出標題。

0

嘗試使用StreamWriter,並將其append參數設置爲true。

 string filename = @"c:\test.csv"; 
     StringBuilder sb = new StringBuilder(); 

     sb.Append("test1"); 
     sb.Append("test2"); 

     StreamWriter sw = new StreamWriter(filename, true); 
     sw.Write(sb.ToString()); 
     sw.Close(); 

這應該可以做到。