private void doRanking(int roundNumber)
        {
            DataRow[] foundRows          = m_computedScoresTable.Select("", "Score_After_Round_" + roundNumber + " DESC, Tiebreaker_After_Round_" + roundNumber + " DESC");
            int       rank               = 1;
            double    previousValue      = 0;
            double    previousTiebreaker = 0;
            string    rankColumnName     = "Rank_After_Round_" + roundNumber;
            int       count              = 0;

            for (int i = 0; i < foundRows.Length; ++i)
            {
                DataRow dRow = foundRows[i];
                if (LocalUtilities.hasWithdrawn(m_databaseFileName, getIntValue(dRow, "Team_Number"), roundNumber))
                {
                    dRow[rankColumnName] = -1;
                }
                else
                {
                    double currentValue      = getDoubleValue(dRow, "Score_After_Round_" + roundNumber);
                    double currentTiebreaker = getDoubleValue(dRow, "Tiebreaker_After_Round_" + roundNumber);
                    if (count > 0 && (currentValue != previousValue || currentTiebreaker != previousTiebreaker))
                    {
                        rank = count + 1;
                    }
                    previousValue        = currentValue;
                    previousTiebreaker   = currentTiebreaker;
                    dRow[rankColumnName] = rank;
                    count++;
                }
            }
        }
        private void getTeamsScoreWise()
        {
            string sort = "Rank_After_Round_" + m_scoreRoundNumber + " ASC, Tiebreaker_After_Round_" + m_scoreRoundNumber + " DESC";

            DataRow[] dRows = m_computedScoresTable.Select("", sort);
            int       count = 0;

            foreach (DataRow dRow in dRows)
            {
                int team = AccessDatabaseUtilities.getIntValue(dRow, "Team_Number");
                if (!LocalUtilities.hasWithdrawn(m_databaseFileName, team, m_drawRoundNumber))
                {
                    count++;
                }
            }
            m_teamNumber    = new int[count + 1];
            m_teamNumber[0] = 0;
            m_assigned      = new bool[count + 1];
            count           = 1;
            foreach (DataRow dRow in dRows)
            {
                int team = AccessDatabaseUtilities.getIntValue(dRow, "Team_Number");
                if (!LocalUtilities.hasWithdrawn(m_databaseFileName, team, m_drawRoundNumber))
                {
                    m_teamNumber[count] = team;
                    m_assigned[count]   = false;
                    count++;
                }
            }
        }