在设置网格的DataSource属性后,将未绑定的列添加到datagridview?

时间:2014-12-13 23:05:27

标签: c# sql datagridview datatable datasource

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

  1. ID(int)
  2. Fname(nvarchar(50)
  3. 人口(int)
  4. 我在form1中有datagridview命名为grid:

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

    我将用什么替换???添加未绑定的百分比列,显示tblTest行中所有数据的填充百分比。 我们的计算必须在代码方面进行,而不是在DB方面...... 谢谢你:))

1 个答案:

答案 0 :(得分:2)

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

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;