0

DataTable次の列を持つ 1 つ(dtProperty) があります。

  1. プロパティ ID、
  2. リスト項目
  3. ルームID、
  4. レートID、
  5. ルームシーケンス

RoomCount と PID の 2 つの変数があり、その値は PropertyId、RoomId、RateId の特定の組み合わせに対して既知であり、Roomsequence は RoomCount 以下のすべての値を持つ必要があります。

RoomCount の値が 3 で PID=10212 の場合、PropertyId,RoomId,RateId ::10212,2010,3101 (この場合) の特定の値に対して、RoomSequence の値は 1、2、3 になります。

PropertyId、RoomId、RateId の特定の組み合わせが基準を満たさない場合は、

データ テーブルから行を破棄する必要があります。

以下の表では、上位 3 行と最後の 3 行のみを保持します。

PropertyId  RoomID  RateID   RoomSequence
10212       2010    3101     1
10212       2010    3101     2
10212       2010    3101     3
10212       2011    3100     3
10212       2012    3101     1
10212       2012    3101     2
10212       2014    3101     1
10212       2014    3101     2
10212       2014    3101     3
4

1 に答える 1

0
    var filteredTable = (from row in dtRoom.AsEnumerable()
      where row.Field<int>("RoomSequence") <=
      GetRoomCount(row.Field<int>("PropertyId"), 
                   row.Field<int>("RoomId"), 
                   row.Field<int>("RateID"))
    select row); //ToDataTable()

これにより、ルーム シーケンス フィルターに従ってデータを含む新しいデータテーブルが取得されます。
もちろん、3 つの値に基づいてメソッド内から RoomCount を返す必要がありGetRoomCountます。

于 2012-09-12T13:33:03.093 に答える