ADO .NET - Operações CRUD (revisitado) - II


Vamos rever os conceitos para realizar as operações CRUD usando a ADO .NET.

Continuando o artigo anterior teremos agora a implementação dos métodos da classe GerenciaCategorias do projeto WebDemo.DAL que representa nossa camada de acesso a dados.

Para manter as coisas simples vamos implementar apenas dois métodos nesta classe:

  1. GetCategorias()
  2. GetCategoriaPorId(int categoriaId)

1 - GetCategorias()

Retorna todas as categorias como uma lista de objetos Categoria:

        public List<Categoria> GetCategorias()
        {
            List<Categoria> resultado = new List<Categoria>();
            //Cria uma consulta SQL para retornar todas as categoras
            string consultaSQL = String.Format("select * from Categorias");
            //Cria um dataset
            DataSet dataSet = new DataSet();
            //Cria e abre uma conexão com o SQL Server 
            using (SqlConnection connection = new SqlConnection(DataBaseHelper.ConnectionString))
            {
                SqlCommand command = new SqlCommand(consultaSQL, connection);
                SqlDataAdapter dataAdapter = new SqlDataAdapter(command);
                dataAdapter.Fill(dataSet);
            }
            //Adiciona o nome na tabela do dataset
            dataSet.Tables[0].TableName = "Categorias";
            Categoria categoria = null;
            //Itera sobre a tabela e preenche a lista resultado
            foreach (DataRow dataRow in dataSet.Tables["Categorias"].Rows)
            {
                categoria = new Categoria();
                categoria.CategoriaId = Convert.ToInt32(dataRow["CategoriaId"]);
                categoria.CategoriaNome = dataRow["CategoriaNome"].ToString();
                resultado.Add(categoria);
            }
            return resultado;
        }
2- GetCategoriaPorId(int categoriaId)

Permite retornar uma categoria pelo seu id:

       public Categoria GetCategoriaPorId(int categoriaId)
        {
            Categoria resultado = new Categoria();
            //Cria uma consulta SQL para retornar uma categoria pelo id
            string consultaSQL = String.Format("select * from Categorias where CategoriaId={0}", categoriaId);
            //Cria e abre uma conexão com o SQL Server 
            SqlConnection connection = new SqlConnection(DataBaseHelper.ConnectionString);
            connection.Open();
            SqlCommand comando = new SqlCommand(consultaSQL, connection);
            SqlDataReader dataReader = comando.ExecuteReader();
            if (dataReader.HasRows)
            {
                while (dataReader.Read())
                {
                    resultado.CategoriaId = Convert.ToInt32(dataReader["CategoriaId"]);
                    resultado.CategoriaNome = dataReader["CategoriaNome"].ToString();
                }
            }
            return resultado;
        }

Estamos retornando um objeto Categoria.

A implementação desses dois métodos permite obter informações das categorias.

Para implementar os demais métodos para incluir, atualizar e excluir artigos basta se basear no código usado na implementação da classe GerenciaArtigos.

Para usar a camada de acesso a dados basta criar uma instância das classes GerenciaArtigos() e GerenciaCategorias() e usar os métodos.

No exemplo dos projetos usados na solução para este exemplo temos que referenciar o projeto WebDemo.DAL no projeto WebDemo.

Exemplos de utilização da Camada de acesso a dados

Apenas como exemplo, se tivermos uma página que precisa exibir uma lista de artigos, e usarmos um controle Repeater nomeado como rptArtigos. Podemos fazer assim:

        private void CarregaArtigos()
        {
            GerenciaArtigos artigos = new GerenciaArtigos();
            rptArtigos.DataSource = artigos.GetArtigos();
            rptArtigos.DataBind();
        }

Aqui estamos usando o método GetArtigos() que retorna uma lista de objetos Artigo e é exibido na página usando o controle Repeater.

Outro exemplo seria o código usado para carregar um controle DropDownList chamado ddlCategorias em uma página com as categorias cadastradas:

        private void CarregaCategorias()
        {
            GerenciaArtigos categorias = new GerenciaArtigos();
            ddlCategorias.DataSource = categorias.GetCategorias();
            ddlCategorias.DataTextField = "CategoriaNome";
            ddlCategorias.DataValueField = "CategoriaId";
            ddlCategorias.DataBind();
        }

A implementação da interface para exibir os dados e interagir com o usuário pode variar mas a maneira de acessar a camada de acesso a dados basicamente é a mesma.

Implementamos assim um camada de acesso a dados usando ADO .NET puro recordando os métodos básicos e a utilização dos objetos ADO .NET na realização das operações CRUD.

Pegue o projeto completo aqui: WebDemo.zip

"Não sejais vagarosos no cuidado; sede fervorosos no espírito, servindo ao Senhor;
Alegrai-vos na esperança, sede pacientes na tribulação, perseverai na oração;"
Romanos 12:11,12

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

Referências:


José Carlos Macoratti