/// <summary> /// 使用实体类更新一条数据库记录,实体类必须使用[DbTable]和[DbField]进行标记,并且关键字属性被设置为正确的ID值。 /// </summary> /// <param name="connector"></param> /// <param name="entity"></param> /// <returns>返回更新记录的关键字id值</returns> public static async Task <int> UpdateEntity(DbConnector connector, object entity) { SqlParameter[] parameters; string sql = BuildUpdateSql(entity, out parameters, out int primaryKeyValue); await connector.ExecuteSqlNonQuery(sql, parameters); return(primaryKeyValue); }
/// <summary> /// 在数据库中插入一条新的实体记录,实体类必须使用[DbTable]和[DbField]进行标记,返回新插入的记录的自增长ID。 /// </summary> /// <param name="connector"></param> /// <param name="entity"></param> /// <returns></returns> public static async Task <int> InsertEntity(DbConnector connector, object entity) { SqlParameter[] parameters; string sql = BuildInsertSql(entity, out parameters, out SqlParameter primaryKey); await connector.ExecuteSqlNonQuery(sql, parameters); return((int)primaryKey.Value); }
/// <summary> /// 从数据库中删除一条记录 /// </summary> /// <param name="connector"></param> /// <param name="tableName"></param> /// <param name="primaryKey"></param> /// <param name="value"></param> public static async Task DeleteEntity(DbConnector connector, string tableName, string primaryKey, int value) { string fieldName; SqlParameter p; if (primaryKey.StartsWith("@")) { p = new SqlParameter(primaryKey, value); fieldName = primaryKey.Substring(1); } else { p = new SqlParameter("@" + primaryKey, value); fieldName = primaryKey; } string sql = @$ "DELETE FROM {tableName} WHERE [{fieldName}]={p.ParameterName}"; await connector.ExecuteSqlNonQuery(sql, p); }