Example #1
0
        /// <summary>
        /// 更新库存方法
        /// </summary>
        /// <param name="num">用户输入</param>
        /// <param name="key">主键</param>
        /// <param name="b">true为增加,false为减少</param>
        private void updateReserve(double num, int key)
        {
            if (num == 0)
            {
                return;
            }
            string sql_SelectReserve = "SELECT d_reserve FROM tb_drug WHERE d_id=" + key;
            double reserve           = (double)MySqlTools.ExecuteScalar(sql_SelectReserve);

            if (reserve - num < 0)
            {
                MessageBox.Show("  该药品剩余库存为:" + reserve + "\n  库存不足,请尽快补货!", "温馨提示");
            }
            else
            {
                string sql_updateReserve = string.Format("UPDATE tb_drug SET d_reserve={0} WHERE d_id={1}", reserve - num, key);
                // sql_select_r_price = "SELECT d_r_price FROM tb_drug WHERE d_id=" + key;
                //double money =num*(double)MySqlTools.ExecuteScalar(sql_select_r_price);
                if (MySqlTools.ExecuteNonQuery(sql_updateReserve) == 1)
                {
                    MessageBox.Show("出库成功!", "温馨提示");
                }
                else
                {
                    MessageBox.Show("出库失败!", "温馨提示");
                }
            }
            //}
        }
Example #2
0
        /// <summary>
        /// 登录按钮
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btn_login_Click(object sender, EventArgs e)
        {
            string pwd = tb_pwd.Text;
            string sql = string.Format("SELECT * FROM tb_pwd WHERE pwd='{0}'", pwd);

            try
            {
                if ((int)MySqlTools.ExecuteScalar(sql) == 1)
                {
                    panl_Login.Visible = false;
                }
            }
            catch (Exception)
            {
                MessageBox.Show("您的密码输入有误,请重新输入!", "温馨提示");
            }
        }
Example #3
0
        private void GenerateRanking(uint id)
        {
            var rankingVersion = RankingVersionPivot.Get(id);

            if (rankingVersion == null)
            {
                throw new ArgumentException(Messages.RankingRulesetNotFoundException, nameof(id));
            }

            // Gets the latest monday with a computed ranking.
            var startDate = MySqlTools.ExecuteScalar(GlobalAppConfig.GetConnectionString(),
                                                     "SELECT MAX(date) FROM ranking WHERE version_id = @version",
                                                     RankingVersionPivot.OPEN_ERA_BEGIN,
                                                     new MySqlParameter("@version", MySqlDbType.UInt32)
            {
                Value = id
            });
            // Monday one day after the latest tournament played (always a sunday).
            var dateStop = (EditionPivot.GetLatestEditionDateEnding() ?? startDate).AddDays(1);

            // Loads matches from the previous year.
            SqlMapper.LoadMatches((uint)startDate.Year - 1);

            using (var sqlConnection = new MySqlConnection(GlobalAppConfig.GetConnectionString()))
            {
                sqlConnection.Open();
                using (var sqlCommand = sqlConnection.CreateCommand())
                {
                    sqlCommand.CommandText = MySqlTools.GetSqlInsertStatement("ranking", new List <string>
                    {
                        "player_id", "date", "points", "ranking", "version_id", "editions"
                    });
                    sqlCommand.Parameters.Add("@player_id", MySqlDbType.UInt32);
                    sqlCommand.Parameters.Add("@date", MySqlDbType.DateTime);
                    sqlCommand.Parameters.Add("@points", MySqlDbType.UInt32);
                    sqlCommand.Parameters.Add("@ranking", MySqlDbType.UInt32);
                    sqlCommand.Parameters.Add("@version_id", MySqlDbType.UInt32);
                    sqlCommand.Parameters.Add("@editions", MySqlDbType.UInt32);
                    sqlCommand.Prepare();

                    // Static.
                    sqlCommand.Parameters["@version_id"].Value = id;

                    // Puts in cache the triplet player/edition/points, no need to recompute each week.
                    var cachePlayerEditionPoints = new Dictionary <KeyValuePair <PlayerPivot, EditionPivot>, uint>();

                    // For each week until latest date.
                    startDate = startDate.AddDays(7);
                    while (startDate <= dateStop)
                    {
                        // Loads matches from the current year (do nothing if already done).
                        SqlMapper.LoadMatches((uint)startDate.Year);

                        var playersRankedThisWeek = rankingVersion.ComputePointsForPlayersInvolvedAtDate(startDate, cachePlayerEditionPoints);

                        // Static for each player.
                        sqlCommand.Parameters["@date"].Value = startDate;

                        // Inserts each player.
                        int rank = 1;
                        foreach (var player in playersRankedThisWeek.Keys)
                        {
                            sqlCommand.Parameters["@player_id"].Value = player.Id;
                            sqlCommand.Parameters["@points"].Value    = playersRankedThisWeek[player].Item1;
                            sqlCommand.Parameters["@editions"].Value  = playersRankedThisWeek[player].Item2;
                            sqlCommand.Parameters["@ranking"].Value   = rank;
                            sqlCommand.ExecuteNonQuery();
                            rank++;
                        }

                        startDate = startDate.AddDays(7);
                    }
                }
            }
        }