Search code examples
c#.netado.netexpressiondatacolumn

reference value in DataColumn Expressions


given an expression like so

 DataTable1.Columns.Add("value", typeof(double), "rate * loan_amt");

in a datatable with 10000 rows where rate is same for all rows and loan_amt varies

When the rate changes, it changes for all currently that means iterating through all rows like so

 foreach(DataRow dr in DataTable1.Rows) dr["rate"] = new_rate;

wondering if there,s a better way using a ReferenceTable (with only 1 row ) in the same DataSet and linking it somehow like so

 DataTable1.Columns.Add("value", typeof(double), "RefTable.Row0.rate * loan_amt");

so changing the rate would be as simple as

 RefTable.Rows[0]["rate"] = new_rate;

Or any other way ?


Solution

  • found the answer, adding it for others who might land here

    Key is to add a DataRelation between the two tables/columns and the expression would be

    Parent.rate * loan_amt