2010-12-16 10 views
0

免責事項:私はC#とWPFの新機能で、既存のコード に機能を追加しました。DataSet Compute MAXの値

db columの MAX値を計算中に問題が発生しました。

私はSudentIDのMAX(すなわち:Number)を計算する必要がテーブルStudentIDを持ってSutent_DB

、StudentName、StudentClass と学生のデータベースを持って、私はDataSet.Table[Student_DB].Compute("MAX(StudentID)","") 、そこからそれをやっている

Numberオブジェクトをreturingされる(ワーキングファイン)

を今、私は= 5

すなわち選択StudentClassにだけに私の選択を制限したい:DataSet.Table[Student_DB].Select("StudentClass=5");

ここで私は、SELECTは私の検索でのDataRow

に解決策を返すようMAX(StudentID)を計算する問題に直面して

int iMax=0; 
    foreach (DataRow oneNewrow DataSet.Table[Student_DB].Select("StudentClass=5")) 
    { 
     if iMax < oneNewrow["StudentID"] 

     iMax = oneNewrow["StudentID"] ; 

    } 

///use iMax here. 

はちょうど私のために任意のより良いか簡単な解決策を確認したいされています問題。

答えて

2

Computeの2番目のパラメータは、フィルタです:

int maxId = (int)DataSet.Table[Student_DB].Compute("MAX(StudentID)","StudentClass=5"); 
0

あなたのクエリから返されたDataRowの配列上のオブジェクトへのLINQを使用することができます。ここに例があります:

int iMax = DataSet.Table[Student_DB].Select("StudentClass=5")).Max(row => row["StudentID"]);