public void Update <T>(T Val) where T : class { Open(); DbEntry ValEntry = Val as DbEntry; List <SQLiteParameter> Params = new List <SQLiteParameter>(); FieldInfo[] Fields = DALFieldAttribute.GetDALFields <T>(); foreach (var F in Fields) { DALFieldAttribute DALField = F.GetCustomAttribute <DALFieldAttribute>(); Params.Add(ValEntry.CreateParameter(DALField.ColumnName)); } using (SQLiteCommand SQL = Con.CreateCommand()) { string NewValues = string.Join(", ", Params.Select(C => C.ParameterName.Substring(1) + " = " + C.ParameterName)); string Conditions = string.Join(", ", Params.Select(C => C.ParameterName)); SQL.CommandText = string.Format("UPDATE {0} SET {1} WHERE id = @id", DALTableAttribute.GetTableName <T>(), NewValues); SQL.Parameters.Add(ValEntry.CreateParameterID()); SQL.Parameters.AddRange(Params.ToArray()); SQL.ExecuteNonQuery(); } Close(); }
public void Delete <T>(T Val) where T : class { Open(); DbEntry ValEntry = Val as DbEntry; using (SQLiteCommand SQL = Con.CreateCommand()) { SQL.CommandText = string.Format("DELETE FROM {0} WHERE id = @id", DALTableAttribute.GetTableName <T>()); SQL.Parameters.Add(ValEntry.CreateParameterID()); SQL.ExecuteNonQuery(); } Close(); }
public void Insert <T>(T Val) where T : DbEntry { Insert(DALTableAttribute.GetTableName <T>(), Val); }
public IEnumerable <T> Select <T>(SQLiteParameter[] Conditions = null, QueryMode Mode = QueryMode.AND) where T : DbEntry, new() { return(Select <T>(DALTableAttribute.GetTableName <T>(), Conditions ?? new SQLiteParameter[] { }, Mode)); }