public static OldBiDataPack GetPack(String packname) { if (!datas.ContainsKey(packname)) { OldBiDataPack data = MysqlService.GetAllBiData(packname); datas.Add(packname, data); } return(datas[packname]); }
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); }