【问题标题】:Storing the records in csv file from datatable从数据表中将记录存储在 csv 文件中
【发布时间】:2011-02-14 12:03:06
【问题描述】:

我有数据表,我在代码的帮助下在 datagridview 中显示这些值:

   dataGridView1.ColumnCount = TableWithOnlyFixedColumns.Columns.Count;
   dataGridView1.RowCount = TableWithOnlyFixedColumns.Rows.Count;
   for (int i = 0; i < dataGridView1.RowCount; i++)
   {
       for (int j = 0; j < dataGridView1.ColumnCount; j++)
       {
           dataGridView1[j, i].Value = TableWithOnlyFixedColumns.Rows[i][j].ToString();
       }
   }
   TableExtractedFromFile.Clear();
   TableWithOnlyFixedColumns.Clear();

现在我想将数据表中的记录保存在 csv 文件中。我该怎么做?

【问题讨论】:

    标签: c# .net winforms csv datatable


    【解决方案1】:

    你可以这样做:

    // we'll use these to check for rows with nulls
    var columns = yourTable.Columns
        .Cast<DataColumn>();
    
    // say the column you want to sort by is called "Date"
    var rows = yourTable.Select("", "Date ASC"); // or "Date DESC"
    
    using (var writer = new StreamWriter(yourPath)) {
        for (int i = 0; i < rows.Length; i++) {
            DataRow row = rows[i];
    
            // check for any null cells
            if (columns.Any(column => row.IsNull(column)))
                continue;
    
            string[] textCells = row.ItemArray
                .Select(cell => cell.ToString()) // may need to pick a text qualifier here
                .ToArray();
    
            // check for non-null but EMPTY cells
            if (textCells.Any(text => string.IsNullOrEmpty(text)))
                continue;
    
            writer.WriteLine(string.Join(",", textCells));
        }
    }
    

    【讨论】:

    • @Dan Tao,如果有空值或根本没有(空字符串)那么整行不应该存储在csv文件中。我该怎么做?
    • @Harikrishna:我已经更新了代码,建议您如何执行此操作。
    • @Dan Tao,如果日期时间的数据表类型中有一列,那么我希望csv文件中的这些记录按日期排序?
    • @Harikrishna:您可以检索使用DataTable.Select 方法排序的行。我已经用一个例子更新了我的答案。
    • @Dan Tao,对记录进行排序的最佳方法是Datatable.Select还是Datatable.DefaultView.Sort?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-26
    • 2015-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-24
    • 1970-01-01
    相关资源
    最近更新 更多