private static void LoadItems() { SqlCmd cmd = sqlConnection.CreateCommand(); cmd.CommandText = string.Format("SELECT typeID, typeName, marketGroupID, description FROM invTypes"); SqlReader row = cmd.ExecuteReader(); while(row.Read()) { string itemName = row[1].ToString(); long typeID = Convert.ToInt64(row[0]); long mgID = row[2] is DBNull ? -1 : Convert.ToInt64(row[2]); string itemDesc = row[3].ToString(); EveItem newItem = new EveItem(); newItem.Name = itemName; newItem.Description = itemDesc; newItem.ID = typeID; newItem.MarketGroupID = mgID; newItem.IconString = "TYPEID"; GetRequiredSkills(newItem); m_Items.Add(typeID, newItem); } row.Close(); // Load skills seperately so we can give them all their data LoadSkills(); }
static void GetRequiredSkills(EveItem item) { SqlCmd cmd = sqlConnection.CreateCommand(); cmd.CommandText = string.Format(@"SELECT * FROM dgmTypeAttributes INNER JOIN dgmAttributeTypes ON dgmTypeAttributes.attributeID = dgmAttributeTypes.attributeID WHERE typeId = {0} AND categoryId = 8", item.ID); SqlReader row = cmd.ExecuteReader(); while(row.Read()) { string attributeName = row["attributeName"].ToString(); int reqSkillIdx = attributeName.Replace("requiredSkill", "")[0] - 49; string value = row["valueInt"] is DBNull ? row["valueFloat"].ToString() : row["valueInt"].ToString(); if(attributeName.Contains("Level")) { // Required Skill Level item.RequiredSkills[reqSkillIdx].SkillLevel = int.Parse(value); } else { // Required Skill ID item.RequiredSkills[reqSkillIdx].SkillID = long.Parse(value); } } row.Close(); }