C#发开中,dataGridView1一中有一张数据表,其中已按第9列降序排列,现需要按第9列在每个不同值之间添加空白行和添加首行值隔断,将处理后的数据再次写入dataGridView1中的所有C#代码
时间: 2024-11-12 17:43:07 浏览: 4
在C#中,使用DataGridView控件操作数据时,如果你想要按照特定列的值并在它们之间插入空行和分隔行,你可以这样做:
```csharp
using System;
using System.Data;
using System.Windows.Forms;
// 假设 dataGridView1 已经包含你需要操作的数据
private void AddSeparatorAndBlankRows()
{
DataTable dataTable = (DataTable)dataGridView1.DataSource; // 获取绑定到 DataGridView 的 DataTable
if (dataTable.Rows.Count > 0)
{
// 按照第9列升序排序
DataView dv = new DataView(dataTable);
dv.Sort = "Column9 DESC"; // Column9 是第九列的实际名称,这里需要替换为你实际的列名
// 遍历排序后的数据视图
for (int i = 0; i < dv.Count; i++)
{
// 添加首行值的隔断(如果需要)
if (i == 0)
{
InsertBlankRowWithHeader(dv[i]["Column9"].ToString()); // Header 是你想显示的内容,同样需要替换为实际的列头文本
}
// 在每个不同值之间添加空行
else if (dv[i]["Column9"] != dv[i - 1]["Column9"])
{
InsertBlankRow();
}
dataGridView1.DataSource = dv; // 更新 DataGridView
}
}
}
private void InsertBlankRow(string headerValue = null)
{
DataTable blankRow = new DataTable();
blankRow.Columns.Add("Column9", typeof(object)); // 添加相同类型的列
blankRow.NewRow().ItemArray = new object[] { DBNull.Value }; // 设置默认值
if (!string.IsNullOrEmpty(headerValue))
{
blankRow.Rows[0][0] = headerValue; // 如果有标题,则设置该值
}
dataGridView1.DataSource = blankRow;
}
private void InsertBlankRow()
{
InsertBlankRow(null); // 如果不需要标题,直接调用此函数
}
```
别忘了将`"Column9"`、`"ColumnHead"`替换为实际的列名和值。这段代码假设你的数据源是`DataTable`,如果不是,可能会需要调整相应的部分。
阅读全文