2010-12-16 6 views
0

Avertissement: Je suis nouveau à C# et WPF et en ajoutant des fonctionnalités à code existant.DataSet Compute MAX Valeur

Je rencontre un problème lors du calcul de la valeur MAX des colonnes db.

J'ai une base de données de l'étudiant avec table Sutent_DB

qui a StudentID, StudentName, StudentClass je dois calculer le MAX de SudentID (ie: Number)

que je le fais de DataSet.Table[Student_DB].Compute("MAX(StudentID)","") qui est returing un objet Numéro (travail fin)

maintenant, je veux limiter ma sélection seulement à StudentClass selected = 5

-à-dire:. DataSet.Table[Student_DB].Select("StudentClass=5");

Ici, je suis confronté à un problème pour trouver le MAX (StudentID) comme SELECT renvoie datarow

La solution dans ma trouvaille est

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

     iMax = oneNewrow["StudentID"] ; 

    } 

///use iMax here. 

voulez simplement vérifier une meilleure solution ou simple pour mon problème.

Répondre

2

Le deuxième paramètre de Compute est un filtre:

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

Vous pouvez utiliser LINQ to Objects sur le tableau de DataRows retourné à partir de votre requête. Voici un exemple:

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