//Método que simula o AddWithValue do sql command para um banco de dados genérico public static void AddWithValue(this DbParameterCollection collection, string nome, object valor) { DbParameter parametro = DbFactory.GetCurrentCommand().CreateParameter(); parametro.ParameterName = nome; parametro.Value = valor; collection.Add(parametro); }
//Método genérico que deleta uma dada tabela associativa public static DbCommand BuildDeleteWhereIdCommand(string field, int id) { DbCommand command = DbFactory.GetCurrentCommand(); command.CommandText = string.Format("DELETE FROM {0} WHERE " + field + " = @FIELD", GetTableName()); command.Parameters.AddWithValue($"@FIELD", id); return(command); }
//Método genérico que cria o comando de delete no banco de dados, aonde {0} pega o nome da tabela como primeiro item a ser adicionado no comando public static DbCommand BuildDeleteCommand(T item) { DbCommand command = DbFactory.GetCurrentCommand(); command.CommandText = string.Format("DELETE FROM {0} WHERE ID = @ID", GetTableName()); object id = item.GetType().GetProperty("ID").GetValue(item, null); command.Parameters.AddWithValue("@ID", id); return(command); }
//Método genérico que cria o comando de update no banco de dados, aonde {0} pega o nome da tabela como primeiro item a ser adicionado no comando e depois os campos que serão inseridos public static DbCommand BuildUpdateCommand(T item) { StringBuilder builder = new StringBuilder(); builder.AppendFormat("UPDATE {0} SET {1} WHERE ID = @ID", GetTableName(), GetUpdateFields()); DbCommand command = DbFactory.GetCurrentCommand(); command.CommandText = builder.ToString(); GenerateUpdateParameters(command, item); return(command); }
//Cria o comando de insert no banco de dados, aonde {0] pega o nome da tabela como primeiro item a ser adicionado no comando, os campos que serão inseridos e depois os valores que os dados campos irão receber public static DbCommand BuildInsertCommand(T item) { StringBuilder command = new StringBuilder(); command.AppendFormat("INSERT INTO {0} ({1}) VALUES ({2});SELECT SCOPE_IDENTITY();", GetTableName(), GetInsertFields(false), GetInsertFields(true)); DbCommand dbCommand = DbFactory.GetCurrentCommand(); GenerateInsertParameters(dbCommand, item); dbCommand.CommandText = command.ToString(); return(dbCommand); }