将我的数据库功能修改为CSV

时间:2012-12-02 13:18:09

标签: c#

我编写了一个将数据表保存为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());
    }

2 个答案:

答案 0 :(得分:1)

File.AppendAllText代替File.WriteAllText会附加到现有CSV文件的末尾。当然,如果文件已经存在,你需要避免写出标题。

答案 1 :(得分: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();

这应该可以解决问题。