public static SlotItem[] GetItemsForCharacter(CharacterManager.ItemType type, int? characterId = null)
        {
            using (var bl = Storage.GetBuilder(CharacterManager.SQLSafeName))
            {
                bl.SelectFrom(TableName, new string[] { "*" },
                    new WhereFilter(ColumnNames.TypeId, (int)type),
                    new WhereFilter(ColumnNames.CharacterId, characterId)
                );

                return Storage.ExecuteArray<SlotItem>(bl);
            }
        }
        public static int GetItem(CharacterManager.ItemType type, int slot, int? characterId = null)
        {
            using (var bl = Storage.GetBuilder(CharacterManager.SQLSafeName))
            {
                bl.SelectFrom(TableName, new string[] { ColumnNames.Id },
                    new WhereFilter(ColumnNames.TypeId, (int)type),
                    new WhereFilter(ColumnNames.Slot, slot),
                    new WhereFilter(ColumnNames.CharacterId, characterId)
                );

                return (int)Storage.ExecuteScalar<Int32>(bl);
            }
        }
        public static int NewItem(CharacterManager.ItemType type, int netId, int stack, int prefix, int slot, int? userId = null)
        {
            using (var bl = Storage.GetBuilder(CharacterManager.SQLSafeName))
            {
                bl.InsertInto(TableName,
                    new DataParameter(ColumnNames.TypeId, (int)type),
                    new DataParameter(ColumnNames.NetId, netId),
                    new DataParameter(ColumnNames.Stack, stack),
                    new DataParameter(ColumnNames.Prefix, prefix),
                    new DataParameter(ColumnNames.Slot, slot),
                    new DataParameter(ColumnNames.UserId, userId)
                );

                return (int)Storage.ExecuteInsert(bl); //Get the new ID
            }
        }
        public static bool UpdateItem(CharacterManager.ItemType type, int netId, int prefix, int stack, bool favorite, int slot, int? characterId = null)
        {
            using (var bl = Storage.GetBuilder(CharacterManager.SQLSafeName))
            {
                bl.Update(TableName, new DataParameter[]
                    {
                        new DataParameter(ColumnNames.NetId, netId),
                        new DataParameter(ColumnNames.Prefix, prefix),
                        new DataParameter(ColumnNames.Stack, stack),
                        new DataParameter(ColumnNames.Favorite, favorite)
                    },
                    new WhereFilter(ColumnNames.TypeId, (int)type),
                    new WhereFilter(ColumnNames.Slot, slot),
                    new WhereFilter(ColumnNames.CharacterId, characterId)
                );

                return Storage.ExecuteNonQuery(bl) > 0;
            }
        }