设置网格的数据源属性后,将未绑定的列添加到数据网格视图

本文关键字:网格 添加 数据网 视图 绑定 数据 属性 数据源 设置 | 更新日期: 2023-09-27 18:34:07

我想知道如何在设置DataGridView的数据源属性后创建和填充未绑定的列值。假设我们的数据库中有两个简单的表:测试:

  1. 身份证(整数)
  2. Fname (nvarchar(50)
  3. 人口(整数)

我的 form1 中有名为 grid 的数据网格视图:

DataTable tblTest = new DataTable();//Select * from tblTest
...
grid.DataSource = tblTest;
????

我将用???替换什么以添加未绑定的百分比列,该列显示 tblTest 行中所有数据的总体百分比。我们的计算必须在代码端而不是数据库端进行......谢谢:)

设置网格的数据源属性后,将未绑定的列添加到数据网格视图

只需将列添加到DataTable并以相同的方式使用它添加到网格数据源

DataTable tblTest = new DataTable(); //SELECT * FROM YourTable
//Calculate sum of population
Decimal overall = tblTest.AsEnumerable().Select(dr => dr.Field<Decimal>("Population")).DefaultIfEmpty().Sum();
tblTest.Columns.Add("Percentage", typeof(Decimal));
foreach(DataRow drow in tblTest.Rows)
{
    Decimal percentage = YourPercentageCalculationResult; //Add you calculation
    drow.SetField<Decimal>("Percentage", percentage);
}
//Create column "on runtime"
DataGridViewTextBoxColumn temp = New DataGridViewTextBoxColumn();
temp.DataPropertyName = "Percentage"
temp.ReadOnly = true;
grid.Columns.Add(temp);
grid.DataSource = tblTest;