ArtistaDAL.cs >>>
using Microsoft.Data.SqlClient;
using ScreenSound.Modelos;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ScreenSound.Banco;
internal class ArtistaDAL
{
public IEnumerable<Artista> Listar()
{
var lista = new List<Artista>();
using var connection = new Connection().ObterConexao(); //conecta com o banco de dados
connection.Open();//abre a conexão
string sql = "SELECT * FROM Artistas"; //script do bacndo de dados para selecionar artistas
SqlCommand command = new SqlCommand(sql, connection); //recebe a conexão e o script
using SqlDataReader dataReader = command.ExecuteReader(); //executa o comando
while (dataReader.Read()) //leitura das informações, criando os campos que queremos ler
{
string nomeArtista = Convert.ToString(dataReader["Nome"]);
string bioArtista = Convert.ToString(dataReader["Bio"]);
int idArtista = Convert.ToInt32(dataReader["Id"]);
Artista artista = new(nomeArtista, bioArtista) { Id = idArtista };
lista.Add(artista);//quantos artistas tiverem na tabela vai ser lido e adicionado na tabela
}
return lista;
}
public void Adicionar(Artista artista)
{
using var connection = new Connection().ObterConexao();
connection.Open();
string sql = "INSERT INTO Artistas (Nome, FotoPerfil, Bio) " +
"VALUES (@nome, @perfilPadrao, @bio)";
SqlCommand command = new SqlCommand(sql, connection);
//mapeando quais informações vai para cada parte da tabela
command.Parameters.AddWithValue("@nome", artista.Nome);
command.Parameters.AddWithValue("@perfilPadrao", artista.FotoPerfil);
command.Parameters.AddWithValue("@bio", artista.Bio);
int retorno = command.ExecuteNonQuery(); //quantidade de linhas afetados
Console.WriteLine($"Linhas afetadas: {retorno}");
}
public void Atualizar(Artista artista)
{
using var connection = new Connection().ObterConexao();
connection.Open();
string sql = $"UPDATE Artistas SET Nome = @nome, Bio = @bio WHERE Id = @id";
SqlCommand command = new SqlCommand(sql, connection);
//mapeando
command.Parameters.AddWithValue("@nome", artista.Nome);
command.Parameters.AddWithValue("@bio", artista.Bio);
command.Parameters.AddWithValue("@id", artista.Id);
int retorno = command.ExecuteNonQuery(); //quantidade de linhas afetados
Console.WriteLine($"Linhas afetadas: {retorno}");
}
public void Deletar(int id)
{
using var connection = new Connection().ObterConexao();
connection.Open();
string sql = $"DELETE FROM Artistas WHERE Id = @id";
SqlCommand command = new SqlCommand(sql, connection);
command.Parameters.AddWithValue("@id", id);
int retorno = command.ExecuteNonQuery(); //quantidade de linhas afetados
Console.WriteLine($"Linhas afetadas: {retorno}");
}
}
Program.cs
using ScreenSound.Menus;
using ScreenSound.Modelos;
using ScreenSound.Banco;
try
{
var artistaDAL = new ArtistaDAL();
artistaDAL.Adicionar(new Artista("Miltom Nascimento", "vulgo bituca, cruzeirense de coracao e referencia nacional em tudo que faz"));
var listaArtistas = artistaDAL.Listar();
foreach (var artista in listaArtistas)
{
Console.WriteLine(artista);
}
// Atualizar um artista existente
var artistaParaAtualizar = new Artista("Ana frango eletrico", "hmmmm frango");
artistaParaAtualizar.Id = 2018; // Altera o artista que deseja atualizar pelo ID
artistaDAL.Atualizar(artistaParaAtualizar);
// Listar novamente todos os artistas após a atualização
var listaArtistasAtualizada = artistaDAL.Listar();
foreach (var artista in listaArtistasAtualizada)
{
Console.WriteLine(artista);
}
//Deletar artista
int idArtistaParaDeletar = 2019;
artistaDAL.Deletar(idArtistaParaDeletar);
// Listar novamente todos os artistas após deletar
var listaArtistasDelet = artistaDAL.Listar();
foreach (var artista in listaArtistasDelet)
{
Console.WriteLine(artista);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
return;