using Microsoft.Data.SqlClient; using MLL; using System; using System.Collections.Generic; using System.Data; namespace DAL { public class DALLBancos { private readonly string connectionString; public DALLBancos(string connectionString) { this.connectionString = connectionString; } public bool Inserir(ModeloBancos modelo) { using SqlConnection conn = new(connectionString); string query = @" INSERT INTO Bancos ( NUMERO, NOME ) VALUES ( @NUMERO, @NOME )"; using SqlCommand cmd = new(query, conn); PreencherParametros(cmd, modelo); conn.Open(); return cmd.ExecuteNonQuery() > 0; }//inserir public bool Alterar(ModeloBancos modelo) { using SqlConnection conn = new(connectionString); string query = @" UPDATE Bancos SET NUMERO = @NUMERO, NOME = @NOME WHERE ID_BANCOS = @ID_BANCOS"; using SqlCommand cmd = new(query, conn); PreencherParametros(cmd, modelo); cmd.Parameters.AddWithValue("@ID_BANCOS", modelo.ID_BANCOS); conn.Open(); return cmd.ExecuteNonQuery() > 0; }//alterar public bool Excluir(int id) { using SqlConnection conn = new(connectionString); string query = "DELETE FROM Bancos WHERE ID_BANCOS = @ID_BANCOS"; using SqlCommand cmd = new(query, conn); cmd.Parameters.AddWithValue("@ID_BANCOS", id); conn.Open(); return cmd.ExecuteNonQuery() > 0; }//excluir public ModeloBancos? ObterPorId(int id) { using SqlConnection conn = new(connectionString); string query = "SELECT * FROM Bancos WHERE ID_BANCOS = @ID_BANCOS"; using SqlCommand cmd = new(query, conn); cmd.Parameters.AddWithValue("@ID_BANCOS", id); conn.Open(); using SqlDataReader dr = cmd.ExecuteReader(); if (dr.Read()) { return PreencherModelo(dr); } return null; }//alterar public List Listar() { List lista = []; using SqlConnection conn = new(connectionString); string query = "SELECT * FROM Bancos ORDER BY NOME"; using SqlCommand cmd = new(query, conn); conn.Open(); using SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { lista.Add(PreencherModelo(dr)); } return lista; }//Listar public List Listar(string valor) { List lista = []; using SqlConnection conn = new(connectionString); string query = @" SELECT * FROM Bancos WHERE NOME LIKE @VALOR ORDER BY NOME"; using SqlCommand cmd = new(query, conn); cmd.Parameters.AddWithValue("@VALOR", $"%{valor}%"); conn.Open(); using SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { lista.Add(PreencherModelo(dr)); } return lista; }//Listar public int ObterQuantidade() { using SqlConnection conn = new(connectionString); string query = "SELECT COUNT(*) FROM Bancos"; using SqlCommand cmd = new(query, conn); conn.Open(); return Convert.ToInt32(cmd.ExecuteScalar()); }//ObterQuantidade public bool VerificarExistencia(int id) { using SqlConnection conn = new(connectionString); string query = "SELECT COUNT(*) FROM Bancos WHERE ID_BANCOS = @ID_BANCOS"; using SqlCommand cmd = new(query, conn); cmd.Parameters.AddWithValue("@ID_BANCOS", id); conn.Open(); return Convert.ToInt32(cmd.ExecuteScalar()) > 0; }//VerificarExistencia public DataTable LocalizarTodos() { using SqlConnection conn = new(connectionString); string query = "SELECT * FROM Bancos"; using SqlCommand cmd = new(query, conn); using SqlDataAdapter da = new(cmd); DataTable dt = new(); da.Fill(dt); return dt; }//LocalizarTodos private static ModeloBancos PreencherModelo(SqlDataReader dr) { return new ModeloBancos { ID_BANCOS = Convert.ToInt32(dr["ID_BANCOS"]), NUMERO = dr["NUMERO"] == DBNull.Value ? string.Empty : Convert.ToString(dr["NUMERO"]) ?? string.Empty, NOME = dr["NOME"] == DBNull.Value ? string.Empty : Convert.ToString(dr["NOME"]) ?? string.Empty }; } private static void PreencherParametros(SqlCommand cmd, ModeloBancos modelo) { cmd.Parameters.AddWithValue("@NUMERO", string.IsNullOrWhiteSpace(modelo.NUMERO) ? DBNull.Value : modelo.NUMERO); cmd.Parameters.AddWithValue("@NOME", string.IsNullOrWhiteSpace(modelo.NOME) ? DBNull.Value : modelo.NOME); } } }