Пример #1
0
        public static OldBiDataPack GetPack(String packname)
        {
            if (!datas.ContainsKey(packname))
            {
                OldBiDataPack data = MysqlService.GetAllBiData(packname);
                datas.Add(packname, data);
            }

            return(datas[packname]);
        }
Пример #2
0
        public static OldBiDataPack GetAllBiData(string tablename)
        {
            MySqlConnection conn = new MySqlConnection(linker);

            conn.Open();

            MySqlCommand    command = new MySqlCommand(String.Format("SELECT COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH, COLUMN_COMMENT FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = '{0}' AND TABLE_SCHEMA = '{1}'", tablename, database), conn);
            MySqlDataReader reader  = command.ExecuteReader();

            OldBiDataPack pack = new OldBiDataPack(tablename);

            while (reader.Read())
            {
                pack.header.Add(reader.GetString(0));
                pack.datatype.Add(reader.GetString(1));
                pack.datasize.Add(reader.IsDBNull(2) ? 0 : reader.GetInt32(2));
                pack.comment.Add(reader.GetString(3));
            }
            reader.Close();

            //#region 专为实现默认掉落组
            //if (tablename == "cfg_monster_group_drop")
            //{
            //    command = new MySqlCommand(String.Format("SELECT `mid`,`mid`,1000,0,1439 FROM `cfg_monster`", tablename), conn);
            //    reader = command.ExecuteReader();

            //    while (reader.Read())
            //    {
            //        List<String> item = new List<string>();
            //        for (int i = 0; i < reader.FieldCount; i++)
            //        {
            //            item.Add(reader.GetString(i));
            //        }
            //        pack.data.Add(new BiData(int.Parse(item[0]), int.Parse(item[1])), item);
            //        int keyid = int.Parse(item[0]);
            //        if (pack.keys.ContainsKey(keyid))
            //        {
            //            pack.keys[keyid]++;
            //        }
            //        else
            //        {
            //            pack.keys.Add(keyid, 1);
            //        }
            //    }
            //    reader.Close();
            //}
            //#endregion

            command = new MySqlCommand(String.Format("SELECT * FROM `{0}` ORDER BY `{1}`, `{2}`", tablename, pack.header[0], pack.header[1]), conn);
            reader  = command.ExecuteReader();

            while (reader.Read())
            {
                List <String> item = new List <string>();
                for (int i = 0; i < reader.FieldCount; i++)
                {
                    item.Add(reader.GetString(i));
                }
                pack.data.Add(new BiData(int.Parse(item[0]), int.Parse(item[1])), item);
                int keyid = int.Parse(item[0]);
                if (pack.keys.ContainsKey(keyid))
                {
                    pack.keys[keyid]++;
                }
                else
                {
                    pack.keys.Add(keyid, 1);
                }
            }
            conn.Close();
            pack.cachTime = DateTime.Now;

            return(pack);
        }