0

C# とデータベースの操作は初めてです。

反復するときに、Datatable (データセットに含まれる) を反復処理する必要があります。現在の行の値を前の行または次の行の値と比較する必要がある場合があります。

私は現在、次のように繰り返しています:

 foreach(DataRow dr in ds.Tables["Invoices"].Rows)
 {
     //Check if invoice id is equal to invoice id from previous/next row

 }

私が考えることができる1つの方法は、「前の」変数を維持して古い値を保存し、比較して更新することですが、DataTableに組み込みオプションが提供されているかどうかを確認したかったのです。

ありがとう、カルビン

4

2 に答える 2

6
for( int i = 0; i < ds.Tables["Invoices"].Rows.Count; i++ )
{
    if( i > 0 )
    {
       // Compare with previous row using index
       if( ds.Tables["Invoices"].Rows[i]["Amount"] > ds.Tables["Invoices"].Rows[i - 1]["Amount"])
       {}
    }
    if( i < ds.Tables["Invoices"].Rows.Count - 1 )
    {
        if( ds.Tables["Invoices"].Rows[i]["Amount"] > ds.Tables["Invoices"].Rows[i + 1]["Amount"])
        {}
    }
}
于 2012-06-11T20:16:41.137 に答える
1

ランダム アクセスが必要な場合は、 を使用せずに、インデックスを使用foreachした単純な非ヒップforループを使用します。

于 2012-06-11T20:10:45.597 に答える