コード例 #1
0
            public ListForShow(int iid, string group, string style, string round, int routeNumber, SqlConnection cn)
            {
                this._cn         = cn;
                this.iid         = iid;
                this.group       = group;
                this.style       = style;
                this.round       = round;
                this.routeNumber = routeNumber;
#if FULL
                if (this.GetListType(this._cn) == ListType.BOULDER)
                {
                    mrb = new MultiRouteBoulder(iid, routeNumber);
                }
#endif
            }
コード例 #2
0
            public bool Refresh(SqlConnection _cn = null)
            {
                SqlConnection  cn = _cn == null ? this._cn : _cn;
                SqlDataAdapter da = new SqlDataAdapter(new SqlCommand());

                da.SelectCommand.Connection = cn;
                da.SelectCommand.Parameters.Add("@iid", SqlDbType.Int);
                da.SelectCommand.Parameters[0].Value = iid;
                Boolean preQfClimb = SettingsForm.GetPreQfClimb(da.SelectCommand.Connection, iid, da.SelectCommand.Transaction);

                switch (GetListType(cn))
                {
#if FULL
                case ListType.FLASH:
                    bool showEverybody = SettingsForm.GetFlashShowMode(cn) == SettingsForm.FlashShowMode.BTH;
                    int  timeRoutes;
                    KeyValuePair <int, bool>[] lstRRR;
                    data = StaticClass.FillResFlash(iid, cn, false, out routeNumber, showEverybody, out timeRoutes, out lstRRR);
                    try
                    {
                        if (data.Columns.IndexOf("pos") > -1)
                        {
                            data.Columns.Remove("pos");
                        }
                        if (data.Columns.IndexOf("№") > -1)
                        {
                            data.Columns.Remove("№");
                        }
                    }
                    catch { }
                    return(true);

                case ListType.LEAD:
                    da.SelectCommand.CommandText = @"
                          SELECT r.posText AS Место, p.surname+' '+p.name AS [Фамилия, Имя], 
                                 p.age AS [Г.р.], p.qf AS Разряд, dbo.fn_getTeamName(p.iid, r.list_id) AS Команда, r.resText AS [Рез-т],
                                 r.qf AS [Кв.] 
                            FROM routeResults r(NOLOCK)
                            JOIN Participants p(NOLOCK) ON r.climber_id = p.iid
                            JOIN Teams t(NOLOCK)ON p.team_id = t.iid
                           WHERE r.list_id = @iid
                             AND r.preQf = 0
                        ORDER BY r.pos, r.res DESC, r.start";
                    break;

                case ListType.BOULDER:
                    if (mrb == null)
                    {
                        mrb = new MultiRouteBoulder(iid, cn);
                    }
                    else
                    {
                        mrb.cn = cn;
                    }
                    mrb.FillData();
                    data = mrb.GetListFiltered(MultiRouteBoulder.ListType.Full);
                    foreach (DataColumn dc in data.Columns)
                    {
                        string sCheck = dc.ColumnName.ToLower();
                        if (sCheck.IndexOf("поп") > -1)
                        {
                            if (sCheck.IndexOf("тр") > -1)
                            {
                                dc.ColumnName = "П.Тр.";
                            }
                            else if (sCheck.IndexOf("бон") > -1)
                            {
                                dc.ColumnName = "П.Б.";
                            }
                        }
                    }
                    return(true);

                    //da.SelectCommand.CommandText =
                    //    "  SELECT CASE WHEN r.pos = " + SortingClass.DSQ_POS.ToString() + " THEN 'дискв.'" +
                    //    "              WHEN r.pos = " + SortingClass.DNS_POS.ToString() + " THEN 'н/я'" +
                    //    "              ELSE r.posText END AS Место, " +
                    //    "         p.surname+' '+p.name AS [Фамилия, Имя], " +
                    //    "         p.age AS [Г.р.], p.qf AS Разряд, t.name AS Команда, ";
                    //for (int i = 1; i <= routeNumber; i++)
                    //    da.SelectCommand.CommandText +=
                    //        "     r.top" + i.ToString() + " AS T" + i.ToString() + ", " +
                    //        "     r.bonus" + i.ToString() + " AS B" + i.ToString() + ", ";
                    //da.SelectCommand.CommandText +=
                    //    "         r.tops AS [Т], r.topAttempts AS [Тп], r.bonuses AS [Б], " +
                    //    "         r.bonusAttempts AS [Бп], r.Qf AS [Кв.] " +
                    //    "    FROM boulderResults r(NOLOCK) " +
                    //    "    JOIN Participants p(NOLOCK) ON r.climber_id=p.iid " +
                    //    "    JOIN Teams t(NOLOCK) ON p.team_id=t.iid " +
                    //    "   WHERE r.list_id=" + iid.ToString() +
                    //    "     AND r.preQf = 0 " +
                    //    "ORDER BY r.pos, r.res DESC, r.start";
                    //break;
#endif
                case ListType.SPEED_2:
                    da.SelectCommand.CommandText =
                        "  SELECT r.posText AS Место, p.surname+' '+p.name AS [Фамилия, Имя], " +
                        "         p.age AS [Г.р.], p.qf AS Разряд, dbo.fn_getTeamName(p.iid, r.list_id) AS Команда, " +
                        "         dbo.fn_get1st(p.iid, r.list_id) AS [Квал.1]," +
                        "         r.route1_text AS [Трасса 1],r.route2_text AS[Трасса 2], r.resText AS [Квал.2]," +
                        "         dbo.fn_getBest(r.iid) AS [Итог]," +
                        "         r.qf AS [Кв.] " +
                        "    FROM speedResults r(NOLOCK) " +
                        "    JOIN Participants p(NOLOCK) ON r.climber_id=p.iid " +
                        "    JOIN Teams t(NOLOCK) ON p.team_id=t.iid " +
                        "   WHERE r.list_id=" + iid.ToString() +
                        (preQfClimb ? String.Empty : "     AND r.preQf = 0 ") +
                        "ORDER BY (CASE WHEN r.qf IS NULL THEN 1 WHEN r.qf = '' THEN 1 ELSE 0 END), " +
                        "         r.pos, dbo.fn_getBestRes(r.iid), r.start";
                    break;

                case ListType.SPEED:
                    da.SelectCommand.CommandText =
                        "  SELECT r.posText AS Место, p.surname+' '+p.name AS [Фамилия, Имя], " +
                        "         p.age AS [Г.р.], p.qf AS Разряд, dbo.fn_getTeamName(p.iid, r.list_id) AS Команда, " +
                        "         r.route1_text AS [Трасса 1],r.route2_text AS[Трасса 2], r.resText AS [Сумма]," +
                        "         r.qf AS [Кв.] " +
                        "    FROM speedResults r(NOLOCK) " +
                        "    JOIN Participants p(NOLOCK) ON r.climber_id=p.iid " +
                        "    JOIN Teams t(NOLOCK) ON p.team_id=t.iid " +
                        "   WHERE r.list_id=" + iid.ToString() +
                        (preQfClimb ? String.Empty : "     AND r.preQf = 0 ") +
                        "ORDER BY (CASE WHEN r.qf IS NULL THEN 1 WHEN r.qf = '' THEN 1 ELSE 0 END), " +
                        "         r.pos, r.res,r.start";
                    break;

                default:
                    data = null;
                    GC.Collect();
                    return(false);
                }
                data = new DataTable();
                da.Fill(data);
                return(true);
            }