public StrengthLvInfo GetStrengthLvInfo(uint lv) { StrengthLvInfo info; if (mStrengthLvInfos.TryGetValue(lv, out info)) { return(info); } string query_str = string.Format("SELECT * FROM {0} WHERE {1}=\"{2}\"", mTableName, "lv", lv); var reader = DBManager.Instance.ExecuteSqliteQueryToReader(GlobalConfig.DBFile, mTableName, query_str); if (reader == null) { mStrengthLvInfos[lv] = null; return(null); } if (!reader.HasRows || !reader.Read()) { mStrengthLvInfos[lv] = null; reader.Close(); reader.Dispose(); return(null); } info = new StrengthLvInfo(); info.Lv = DBTextResource.ParseUI(GetReaderString(reader, "lv")); info.Degree = DBTextResource.ParseUI(GetReaderString(reader, "degree")); info.Costs = DBTextResource.ParseKeyUlongValuePairList(GetReaderString(reader, "cost")); info.ShowRedPointGoodsNums = DBTextResource.ParseKeyUlongValuePairList(GetReaderString(reader, "show_red_point_goods_num")); mStrengthLvInfos.Add(info.Lv, info); reader.Close(); reader.Dispose(); return(info); }