2017-01-18 6 views
0
私は法案の数が最大である私のテーブル reportsから bill_versionを取得する必要があります

に対応するデータベースから属性を取得
(そこに同じ値を持つ複数の請求書番号であってもよいが、そのbill_versionによって分類することができます)最大属性

私はC#の初心者であり、同じことについての適切な構文を知らない。これまでのところ、変数maxBillNumberで最大の請求書番号を得ることができました。私は、その請求書のバージョンを取得するための別のクエリを実行する必要はありません。私の必要性に応じてこのコードを変更する方法は?事前に

int maxBillNumber =0; 
if (dt1.Rows.Count > 0) 
{ 
    foreach (DataRow dr in dt1.Rows) 
    { 
     int bill_number1 = dr.Field<int>("bill_number"); 
     maxBillNumber = Math.Max(maxBillNumber, bill_number1); 
    } 
} 

ありがとう:

は、ここでは、コードです!私は別のクエリを実行せずbill_numberを含むその最大行に対応する別の列bill_versionの最大値を取得する必要が

EDIT

bill_number bill_version 
1   0 
2   0 
3   0 
4   1 
4   2 
4   3 

私はすでにをフェッチしています。今、私が取得する必要があり、その対応

+0

'int型maxBillNumber = Convert.ToInt32(dt1.Compute( "最大(bill_number)"、String.Emptyを));' –

+0

試してみてください研究あなたが質問をする前に。私はそれをあなたの質問に答えることができないかどうか私に知らせてください。 –

+0

私はあなたが誤解していると思う** **私の質問。私は最大値を取得した、あなたは上記のコードを見ることができます。今すぐ**別のクエリを実行せずに、その最大行に対応する別の列の値を取得する必要があります。** @JeremyThompson –

答えて

1
 var table = new DataTable(); 
     table.Columns.Add("BillNumber", typeof(int)); 
     table.Columns.Add("BillVersion", typeof(int)); 

     // Here we add five DataRows. 
     table.Rows.Add(1, 0); 
     table.Rows.Add(2, 0); 
     table.Rows.Add(3, 0); 
     table.Rows.Add(4, 1); 
     table.Rows.Add(4, 2); 
     table.Rows.Add(4, 3); 
     var dataRows = table.AsEnumerable().ToList(); 

     var result = dataRows.OrderByDescending(x => x.ItemArray[0]).ThenByDescending(x => x.ItemArray[1]).FirstOrDefault(); 

     if (result != null) 
     { 
      Console.WriteLine(result.ItemArray[0].ToString()); 
      Console.WriteLine(result.ItemArray[1].ToString()); 
     } 
+0

新しいユーザー権限が必要です –

0
int maxBillNumber = Convert.ToInt32(dt1.Compute("max([bill_number])", string.Empty)); 

DataRow[] result = dt1.Select("bill_number = " + maxBillNumber); 
foreach (DataRow row in result) 
{ 
    Console.WriteLine("{0}", row[0]); 
}