curso pr-tico de ms visual studio[1] net 2005
330 pág.

curso pr-tico de ms visual studio[1] net 2005

Disciplina:Tecnologias Web2.420 materiais7.006 seguidores
Pré-visualização35 páginas
cmdGravar

A figura 1.6 mostra como ficará a página que acabou de ser criada.

Curso Prático Visual Studio.NET 2005

Este material não pode ser usado em treinamentos e em sala de aula.
http://www.mauriciojunior.org

Referência: 1.6

Não ligue para o layout por enquanto, estou focando diretamente para a OO

(Orientação a Objetos) e o funcionamento. Espero que até aqui esteja ainda

tudo claro para você leitor.

Clicando com o botão direito no mouse em cima do projeto, adicionei um

nome componente, chamado usuarioDAO.cs. Essa classe é responsável

para inserir os valores dentro do banco de dados, ou seja, a camada de

negócio do sistema.

A figura 1.7 mostra a classe citada anteriormente criada.

Curso Prático Visual Studio.NET 2005

Este material não pode ser usado em treinamentos e em sala de aula.
http://www.mauriciojunior.org

Referência: 1.7

Veja o código da classe usuarioDAO.cs.

using System;

using System.Data;

using System.Configuration;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

using System.Data.SqlClient;

/// <summary>

/// classe que insere usuario no banco de dados, chama de DAO

Curso Prático Visual Studio.NET 2005

Este material não pode ser usado em treinamentos e em sala de aula.
http://www.mauriciojunior.org

/// </summary>

public class usuarioDAO : BancoDados

{

 /// <summary>

 /// insere usuario no banco de dados

 /// </summary>

 /// <param name="usuario"></param>

 public Boolean insereUsuarioDAO(usuarioDTO usuario)

 {

 try

 {

 getConection();

 insereUsuarioNoBanco(usuario);

 return true;

 }

 catch (Exception e)

 {

 throw new Exception(e.Message);

 }

 }

 /// <summary>

 /// metodo para inserir usuario no banco de dados

 /// </summary>

 /// <param name="usuario"></param>

 private Boolean insereUsuarioNoBanco(usuarioDTO usuario)

 {

 try

 {

 SqlCommand sqlc = new

SqlCommand("SP001_INSERE_USUARIO_TESTE", sConn);

 sqlc.CommandType = CommandType.StoredProcedure;

 atribuirValores(usuario, sqlc);

 sqlc.ExecuteNonQuery();

Curso Prático Visual Studio.NET 2005

Este material não pode ser usado em treinamentos e em sala de aula.
http://www.mauriciojunior.org

 return true;

 }

 catch (SqlException e)

 {

 throw new Exception(e.Message);

 }

 finally

 {

 getConectionOut();

 }

 }

 /// <summary>

 /// atribuir valores vindo do objeto

 /// </summary>

 /// <param name="usuario"></param>

 /// <param name="sqlc"></param>

 private static void atribuirValores(usuarioDTO usuario, SqlCommand

sqlc)

 {

 sqlc.Parameters.AddWithValue("@NO_USU", usuario.Nome);

 sqlc.Parameters.AddWithValue("@EMAIL_USU",

usuario.Email);

 sqlc.Parameters.AddWithValue("@END_USU",

usuario.Endereco);

 sqlc.Parameters.AddWithValue("@CEP_USU", usuario.Cep);

 }

 /// <summary>

 /// metodo que conecta no banco de dados;

 /// </summary>

 public void getConection()

 {

Curso Prático Visual Studio.NET 2005

Este material não pode ser usado em treinamentos e em sala de aula.
http://www.mauriciojunior.org

 Conecta();

 }

 /// <summary>

 /// metodo que desconecta do banco de dados

 /// </summary>

 public void getConectionOut()

 {

 Desconecta();

 }

}

Explicando o código acima:

Primeiramente irei analisar a assinatura da classe.

public class usuarioDAO : BancoDados

Se você estiver pensando, “que coisa estranha esse dois pontos”. Não é

estranho, é normal, essa classe está herdando atributos da classe

BancoDados. Estou usando uma parte da orientação a objetos chamada

herança, ou seja, tudo que estiver em outra classe poderá ser usada na

classe usuarioDAO.

O método principal dessa classe é o seguinte:

/// <summary>

 /// insere usuario no banco de dados

 /// </summary>

 /// <param name="usuario"></param>

 public Boolean insereUsuarioDAO(usuarioDTO usuario)

 {

Curso Prático Visual Studio.NET 2005

Este material não pode ser usado em treinamentos e em sala de aula.
http://www.mauriciojunior.org

 try

 {

 getConection();

 insereUsuarioNoBanco(usuario);

 return true;

 }

 catch (Exception e)

 {

 throw new Exception(e.Message);

 }

 }

É bem pequeno esse método, porém dentro do bloco try, é utilizado vários

métodos dessa mesma classe. Analisando a assinatura do método, vejo que

é um método público, retorna um tipo de objeto Boolean, ou seja, true ou

false e recebe um objeto chamado usuarioDTO como parâmetro. Se não

estás entendendo, calma que está chegando a hora certa para entender.

Dentro da classe e do bloco try é chamado um método getConection().

/// <summary>

 /// metodo que conecta no banco de dados;

 /// </summary>

 public void getConection()

 {

 Conecta();

 }

Esse método cima é apenas para conectar ao banco de dados. Veja que o

mesmo está chamando um outro método de dentro da classe

BancoDados.cs. Não esqueça que o mesmo está sendo herdado de outra

classe.

Curso Prático Visual Studio.NET 2005

Este material não pode ser usado em treinamentos e em sala de aula.
http://www.mauriciojunior.org

O próximo método chamado é o insereUsuarioNoBanco(usuario);

passando o parâmetro usuário como parâmetro.

/// <summary>

/// metodo para inserir usuario no banco de dados

/// </summary>

/// <param name="usuario"></param>

private Boolean insereUsuarioNoBanco(usuarioDTO usuario)

{

try

{

 SqlCommand sqlc = new

SqlCommand("SP001_INSERE_USUARIO_TESTE", sConn);

 sqlc.CommandType = CommandType.StoredProcedure;

 atribuirValores(usuario, sqlc);

 sqlc.ExecuteNonQuery();

 return true;

 }

 catch (SqlException e)

{

 throw new Exception(e.Message);

 }

 finally

 {

 getConectionOut();

 }

}

Para quem é experiente com .NET, pode perceber que separei todos os

métodos de uma classe em partes pequenas para serem melhores

gerenciados e para melhor manutenção. Separando dessa forma, poderei

Curso Prático Visual Studio.NET 2005

Este material não pode ser usado em treinamentos e em sala de aula.
http://www.mauriciojunior.org

mudar qualquer método sem que um dependa do outro, ou seja, fica a

independência de código ou de métodos.

Esse método insereUsuarioNoBanco(usuarioDTO usuário) mostra que

está sendo usado uma STORE PROCEDURE como sql. O tipo de comando é

StoreProcedure. A próxima linha, veja que é um método também criado

chamado atribuirValores(usuario, sqlc). Esse método é apenas para

adicionar os valores passados dentro do comando para ser executado.

Veja o método atribuirValores.

/// <summary>

 /// atribuir valores vindo do objeto

 /// </summary>

 /// <param name="usuario"></param>

 /// <param name="sqlc"></param>

 private static void atribuirValores(usuarioDTO usuario, SqlCommand

sqlc)

 {

 sqlc.Parameters.AddWithValue("@NO_USU", usuario.Nome);

 sqlc.Parameters.AddWithValue("@EMAIL_USU",

usuario.Email);

 sqlc.Parameters.AddWithValue("@END_USU",

usuario.Endereco);

 sqlc.Parameters.AddWithValue("@CEP_USU", usuario.Cep);

 }

Esse método receber o objeto usuarioDTO e o SqlCommand apenas para

adicionar como PARAMETERS de um sql. Continuando, a próxima linha do

método insereUsuarioNoBanco apenas executa o sqlc, fazendo assim

uma inserção no banco de dados dos valores passados.

Dentro do bloco finally, estou usando um outro método criado para fechar a

conexão com o banco de dados.

Curso Prático Visual Studio.NET 2005

Este material não pode ser usado em treinamentos e em sala de aula.
http://www.mauriciojunior.org

/// <summary>

 /// metodo que desconecta do banco de dados

 /// </summary>

 public void getConectionOut()

 {

 Desconecta();