给出一个像这样的表达
DataTable1.Columns.Add("value", typeof(double), "rate * loan_amt");
在10000行的数据表中,其中所有行的rate相同且loan_amt不同
当费率发生变化时,它会发生变化 目前这意味着迭代所有行,如此
foreach(DataRow dr in DataTable1.Rows) dr["rate"] = new_rate;
想知道是否有更好的方法在同一个DataSet中使用ReferenceTable(只有1行)并以某种方式链接它
DataTable1.Columns.Add("value", typeof(double), "RefTable.Row0.rate * loan_amt");
所以改变费率就像
一样简单 RefTable.Rows[0]["rate"] = new_rate;
还是其他任何方式?
答案 0 :(得分:0)
这是一个好主意,但您必须在遗留代码中访问数据时重写。它肯定会使速率更新更有效率,但是您可能遇到反向兼容性问题。
如果他们访问该表的代码不多,那么这不是什么大问题,但如果这是一个生产系统,其中有多个进程调用该数据,那么在尝试时可能会出现一系列空值异常访问原始表的“rate”列,或“value”的不一致,具体取决于访问哪个表来检索速率。
如果情况并非如此,那就没什么大不了的。去吧。
答案 1 :(得分:0)
找到了答案,将其添加到可能落在这里的其他人
关键是在两个表/列之间添加DataRelation,表达式为
Parent.rate * loan_amt