2

给出这样的表达

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

在具有 10000 行的数据表中,其中所有行的费率相同,而 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;

或者任何其他方式?

4

2 回答 2

0

这是一个好主意,但您必须在任何时候在遗留代码中访问该数据时重写。它肯定会使更新速率更有效,但您可能会遇到反向兼容性问题。

如果访问该表的代码不多,那么这没什么大不了的,但如果这是一个生产系统,有多个进程调用该数据,那么在尝试访问原始表的“率”列,或您的“值”不一致,具体取决于哪个代码访问了哪个表来检索率。

如果不是这种情况,那就没什么大不了的。去吧。

于 2012-03-02T14:55:08.783 回答
0

找到了答案,添加给其他可能登陆这里的人

关键是在两个表/列之间添加一个 DataRelation,表达式为

Parent.rate * loan_amt
于 2012-03-06T19:52:29.030 回答