コード例 #1
0
        private void knockoutScoresDataGridView_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            DataGridView dgv              = sender as DataGridView;
            string       columnName       = dgv.Columns[e.ColumnIndex].Name;
            int          roundNumber      = knockoutRoundsCombobox.SelectedIndex + 1;
            DataTable    sessionsTable    = AccessDatabaseUtilities.getDataTable(m_databaseFileName, Constants.TableName.KnockoutSessions);
            DataRow      dRow             = sessionsTable.Rows.Find(roundNumber);
            int          numberOfSessions = (int)dRow["Number_Of_Sessions"];

            if (columnName.Contains("Session") || columnName == "Carryover")
            {
                double total = 0;
                Object value = dgv.Rows[e.RowIndex].Cells["Carryover"].Value;
                total += (value == DBNull.Value) ? 0 : (double)value;
                for (int i = 1; i <= numberOfSessions; ++i)
                {
                    value  = dgv.Rows[e.RowIndex].Cells["Session_" + i + "_Score"].Value;
                    total += (value == DBNull.Value) ? 0 : (double)value;
                }
                dgv.Rows[e.RowIndex].Cells["Total"].Value = total;
            }
            else if (columnName == "Team_Number")
            {
                dgv.Rows[e.RowIndex].Cells["Team_Name"].Value = LocalUtilities.getTeamName(m_databaseFileName, Constants.TableName.KnockoutTeams, (int)dgv.Rows[e.RowIndex].Cells["Team_Number"].Value);
            }
        }
コード例 #2
0
        private void createRoundScoresTable(int roundNumber)
        {
            List <DatabaseField> fields = new List <DatabaseField>();

            fields.Add(new DatabaseField("Match_Number", "INTEGER"));
            fields.Add(new DatabaseField("Team_Number", "INTEGER"));
            fields.Add(new DatabaseField("Team_Name", "TEXT", 255));
            fields.Add(new DatabaseField("Carryover", "NUMBER"));
            fields.Add(new DatabaseField("Total", "NUMBER"));
            DataTable table            = AccessDatabaseUtilities.getDataTable(m_databaseFileName, Constants.TableName.KnockoutSessions);
            DataRow   dRow             = table.Rows.Find(roundNumber);
            int       numberOfSessions = (int)dRow["Number_Of_Sessions"];

            m_oldNumberOfSessions[roundNumber] = numberOfSessions;
            for (int i = 1; i <= numberOfSessions; ++i)
            {
                fields.Add(new DatabaseField("Session_" + i + "_Score", "NUMBER"));
            }
            List <string> primaryKeys = new List <string>();

            primaryKeys.Add("Match_Number");
            primaryKeys.Add("Team_Number");
            DataTable scoresTable     = AccessDatabaseUtilities.createTable(m_databaseFileName, Constants.TableName.KnockoutScores + "_" + roundNumber, fields, primaryKeys);
            int       numberOfMatches = Convert.ToInt32(Math.Pow(2, roundNumber - 1));

            for (int i = 1; i <= numberOfMatches; ++i)
            {
                DataRow dScoresRow = scoresTable.NewRow();
                dScoresRow["Match_Number"] = i;
                int teamNumber = i;
                dScoresRow["Team_Number"] = i;
                dScoresRow["Team_Name"]   = LocalUtilities.getTeamName(m_databaseFileName, Constants.TableName.KnockoutTeams, i);
                scoresTable.Rows.Add(dScoresRow);
                dScoresRow = scoresTable.NewRow();
                dScoresRow["Match_Number"] = i;
                teamNumber = 2 * numberOfMatches - (i - 1);
                dScoresRow["Team_Number"] = teamNumber;
                dScoresRow["Team_Name"]   = LocalUtilities.getTeamName(m_databaseFileName, Constants.TableName.KnockoutTeams, teamNumber);
                scoresTable.Rows.Add(dScoresRow);
            }
            AccessDatabaseUtilities.saveTableToDatabase(m_databaseFileName, Constants.TableName.KnockoutScores + "_" + roundNumber);
        }