コード例 #1
0
        public static OldTriDataPack GetPack(String packname)
        {
            if (!datas.ContainsKey(packname))
            {
                OldTriDataPack data = MysqlService.GetAllTriData(packname);
                datas.Add(packname, data);
            }

            return(datas[packname]);
        }
コード例 #2
0
ファイル: MysqlService.cs プロジェクト: sy545633799/FileTool
        public static OldTriDataPack GetAllTriData(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();

            OldTriDataPack pack = new OldTriDataPack(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();

            command = new MySqlCommand(String.Format("SELECT * FROM `{0}` ORDER BY `{1}`, `{2}`, `{3}`", tablename, pack.header[0], pack.header[1], pack.header[2]), 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 TriData(int.Parse(item[0]), int.Parse(item[1]), int.Parse(item[2])), 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);
        }