C# 将数据表中的记录存储在csv文件中
我有datatable,在代码的帮助下在datagridview中显示这些值:C# 将数据表中的记录存储在csv文件中,c#,.net,winforms,csv,datatable,C#,.net,Winforms,Csv,Datatable,我有datatable,在代码的帮助下在datagridview中显示这些值: dataGridView1.ColumnCount = TableWithOnlyFixedColumns.Columns.Count; dataGridView1.RowCount = TableWithOnlyFixedColumns.Rows.Count; for (int i = 0; i < dataGridView1.RowCount; i++) { for (
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();
dataGridView1.ColumnCount=TableWithOnlyFixedColumns.Columns.Count;
dataGridView1.RowCount=TableWithOnlyFixedColumns.Rows.Count;
对于(int i=0;i
现在,我想将数据表中的记录保存在csv文件中。我如何才能做到这一点?您可以这样做:
// 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));
}
}
//我们将使用这些检查是否有空行
var columns=yourTable.columns
.Cast();
//假设要排序的列称为“日期”
var rows=yourTable。选择(“,“日期ASC”);//或“日期说明”
使用(var writer=newstreamwriter(yourPath)){
for(int i=0;irow.IsNull(column)))
继续;
字符串[]textCells=row.ItemArray
.Select(cell=>cell.ToString())//可能需要在此处选择文本限定符
.ToArray();
//检查是否存在非null但为空的单元格
if(textCells.Any(text=>string.IsNullOrEmpty(text)))
继续;
writer.WriteLine(string.Join(“,”,textCells));
}
}
您可以这样做:
// 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));
}
}
//我们将使用这些检查是否有空行
var columns=yourTable.columns
.Cast();
//假设要排序的列称为“日期”
var rows=yourTable。选择(“,“日期ASC”);//或“日期说明”
使用(var writer=newstreamwriter(yourPath)){
for(int i=0;irow.IsNull(column)))
继续;
字符串[]textCells=row.ItemArray
.Select(cell=>cell.ToString())//可能需要在此处选择文本限定符
.ToArray();
//检查是否存在非null但为空的单元格
if(textCells.Any(text=>string.IsNullOrEmpty(text)))
继续;
writer.WriteLine(string.Join(“,”,textCells));
}
}
@Dan Tao,如果有空值或没有任何内容(空字符串),则整行不应存储在csv文件中。我该怎么做?@Harikrishna:我已经更新了代码,并建议您如何执行此操作。@Dan Tao,如果datetime的datatable类型中有一列,那么我希望csv文件中的这些记录按日期排序?@Harikrishna:您可以使用datatable检索排序的行。选择方法。我已经用一个例子更新了我的答案。@Dan Tao,对记录进行排序的最佳方法是什么?Datatable.Select还是Datatable.DefaultView.sort?@Dan Tao,如果有空值或什么都没有(空字符串)那么整行不应该存储在csv文件中。我该怎么做呢?@Harikrishna:我已经更新了代码,并建议您如何做。@Dan Tao,如果datetime的datatable类型中有一列,那么我希望csv文件中的这些记录按日期排序?@Harikrishna:您可以使用datatable检索排序的行。选择方法。我已经用一个例子更新了我的答案。@Dan Tao,对记录进行排序的最佳方法是Datatable.Select还是Datatable.DefaultView.sort?