2

そのような表現を与えられた

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

rate がすべての行で同じで、loan_amt が異なる 10000 行のデータテーブル

レートが変更されると、現在すべてに対して変更されます。つまり、すべての行を次のように反復処理することを意味します。

 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

答えを見つけ、ここに着陸する可能性のある他の人のためにそれを追加しました

重要なのは、2 つのテーブル/列の間に DataRelation を追加することです。式は次のようになります。

Parent.rate * loan_amt
于 2012-03-06T19:52:29.030 に答える
0

これは良い考えですが、レガシ コードでそのデータにアクセスするたびに書き直す必要があります。確かにレートの更新がより効率的になりますが、逆互換性の問題が発生する可能性があります。

そのテーブルにアクセスするコードがそれほど多くない場合、それはそれほど大したことではありませんが、これがそのデータを呼び出す複数のプロセスを持つ運用システムである場合、アクセスしようとすると、null 値例外の暴走列が発生する可能性があります。元のテーブルの「レート」列、またはレートを取得するためにどのコードがどのテーブルにアクセスしたかによる「値」の不一致。

そうでない場合は、大したことではありません。頑張れ。

于 2012-03-02T14:55:08.783 に答える