Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

CRUD em ASP.NET com Camadas

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Tutorial CRUD em ASP.NET com Camadas

    Nesse tutorial vou mostrar como fazer um CRUD em ASP.NET com a linguagem VB e também em camadas

    Para quem não sabe o que é crud:
    Create, Read, Update e Delete


    Vamos la... Eu usarei o Visual Studio 2010, Você também pode usar versões anteriores, Como o 2008.

    Vá em:

    File>>New Project>>Web>>ASP.NET Empty Aplicattion
    PS: Linguagem Visual Basic

    De o nome que desejar, Eu darei o nome de CrudTutorial

    Nossa solução estará vazia, Dessa forma:


    Como iremos programar em camadas utilizaremos 2 camadas (Você pode escolher mais camadas).

    View - Onde ficará toda parte visual da nossa página

    Model - Onde ficará todas as nossas regras de negócio e conexões com o banco de dados

    Então vamos la, Vamos transformar essa primeira camada na camada view renomeando para CrudTutorial.view




    Pronto ja temos a nossa camada View, Agora devemos criar a nossa camada Model.
    Clique com o botão direito na solução e vá em add>New Project

    Escolha um projeto do tipo Class Library e de o nome de CrudTutorial.Model como na imagem abaixo:


    Ok, Ja temos nossa camada View e nossa camada Model, Vamos começar a trabalhar com elas agora, Começando pela View onde ficará toda a parte gráfica da nossa web Page, Clique com o botão direito no projeto CrudTutorial.view e vá em add>New Item> Escolha criar um Web Form, e de um nome que desejar a ela, Eu darei de Default.aspx (Lembre-se, Não apague a extensão aspx).



    Nesse Web Form adicione 3 Labels com o texto de Nome,Email e Senha, Dois botões com o texto de Incluir e Excluir, e por último um listbox.


    Pronto nossa parte gráfica está montada.

    Agora vamos criar nosso banco de dados que irá guardar essas informações, Irei usar o SQL server 2008.
    PS:
    Você também pode usar outros bancos de dados como o famoso access ou MYSQL

    Crie um Banco de dados com o nome que preferir, No meu caso CrudTutorial,Crie uma Tabela com o nome que desejar, No meu caso TB_User e coloque os seguintes campos nessa tabela:



    Acho que não é necessário explicar cada campo, Se Você tem noções SQL ja da pra entender muito bem.

    Agora vamos voltar ao Nosso Visual Studio, Na aba Server Explorer clique com o botão direito em Data Connections e escola Add New Connection como na figura abaixo:


    Após isso aparecerá essa janela:



    Escolha em Microsoft SQL Server e clique em OK.
    PS: Isso pode depender do banco de dados que Você escolheu utilizar.

    Em server Name coloque o nome do seu servidor local, Logo em baixo escolha o banco de dados que Você deseja trabalhar, No meu caso CrudTutorial



    Clique em OK.

    Pronto nossa janela Server Explorer ja está pronta, Ja carregou todas as tabelas e todas as colunas.



    Finalmente vamos tratar da nossa camada model, Onde vai ficar 90% da programação.

    Clique duas vezes sobre a Class1.vb para começar a edição, Após isso iremos definir os campos do nosso projeto.

    Código:
    Public Class Class1
    
        Public Nome As String
        Public Email As String
        Public Senha As String
    
    End Class
    PS: Sim, Todos são do tipo string mesmo...

    Agora vamos fazer nosso método construtor que irá receber 3 parâmetros e atribuir esse 3 parâmetros para os campos criados, Veja que eu documentei o método com 3 aspas simples...

    Código:
        ''' <summary>
        ''' Método construtor
        ''' </summary>
        ''' <param name="pnome">Campo Nome</param>
        ''' <param name="pemail">Campo email</param>
        ''' <param name="pSenha">Campo Senha</param>
        ''' <remarks></remarks>
        Public Sub Class1(ByVal pnome As String, ByVal pemail As String, ByVal pSenha As String)
            Nome = pnome
            Email = pemail
            Senha = pSenha
        End Sub
    Vamos instanciar isso na camada view, Mas antes temos que referenciar a camada view com a camada model.

    Como? Clique com o botão direito no projeto view e clique em add Reference como na imagem abaixo:


    Escolha fazer referência com o nosso único projeto disponível, O model...


    Ótimo, Agora podemos instanciar o método construtor na nossa camada View, Vamos fazer isso no carregamento do form.

    Código:
    Public Class _Default
        Inherits System.Web.UI.Page
    
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Dim classe1 As New CrudTutorial.Model.Class1
            classe1.Class1(TextBox1.Text, TextBox2.Text, TextBox3.Text)
        End Sub
    
    End Class
    Simples não?

    Agora vamos fazer a conexão com o banco de dados para inserir, Mas antes disso tempos que criar uma Connection String, Vamos fazer isso agora.

    Na camada Model Clique em My Project>>Settings>>Configure a nova conexão como Você configurou a anterior.


    Ok, Vamos criar a Procedure InserirBanco, Ela será a responsável de inserir as informações no campo quando o usuário clicar em inserir.

    Código:
    Public Sub InserirBanco()
            Dim conexao As New SqlClient.SqlConnection
            'Conexão definida antes
            conexao.ConnectionString = My.Settings.CN1
            conexao.Open()
    
            Dim comandos As New SqlClient.SqlCommand
            'No banco de dados accsess colocamos "?" onde iremos passar parâmetros
            comandos.CommandText = "INSERT INTO TB_User (Email_Usu,Senha_Usu,Nome_Uso) VALUES(@Email,@Senha,@Nome)"
    
            'Tipo de comando enviado
            comandos.CommandType = CommandType.Text
    
            'Conexão do comando
            comandos.Connection = conexao
    
            'Os parâmetros que iremos passar
            comandos.Parameters.Add("@Email", SqlDbType.NVarChar).Value = Email
            comandos.Parameters.Add("@Senha", SqlDbType.NVarChar).Value = Senha
            comandos.Parameters.Add("@Nome", SqlDbType.NVarChar).Value = Nome
    
            'Execute comando
            comandos.ExecuteNonQuery()
    
            conexao.Close()
        End Sub
    Agora vamos chamar esse método no botão Incluir da camada View

    Código:
         
        Protected Sub Button1_Click1(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
    
    
            Dim classe1 As New CrudTutorial.Model.Class1
            classe1.Class1(TextBox1.Text, TextBox2.Text, TextBox3.Text)
    
            classe1.InserirBanco()
    
    
        End Sub
    Então vamos rodar a página em um servidor local e tentar incluir as informações:


    Voltamos para nosso banco de dados e la esta.


    Agora que ja inserimos vamos listar.

    Vamos criar outro método que ja Chamaremos de CarregaListBox, Pois carregaremos o listbox no carregamento do form

    Melhor ver isso na prática.

    Código:
     Public Sub CarregaListBox()
    
            Dim conexao As New SqlClient.SqlConnection
            '
            conexao.ConnectionString = My.Settings.CN1
            conexao.Open()
    
    
            Dim comandos As New SqlClient.SqlCommand
            comandos.CommandText = "SELECT * FROM TB_User"
    
    
            comandos.CommandType = CommandType.Text
    
            comandos.Connection = conexao
    
            'Variável que ira guardar ids
            Dim leitor As SqlClient.SqlDataReader
            leitor = comandos.ExecuteReader
            While leitor.Read
                id = leitor("ID_Usu")
            End While
    
    
            'Temos que criar outro campo que chamaremos de ID para guardar as IDs de cada usuario, Criaremos junto
            'com os outros campos la em cima
    
            conexao.Close()
    
    
        End Sub
    Agora no no carregamento do form chamamos esse método

    Código:
    Dim classe1 As New CrudTutorial.Model.Class1
            classe1.Class1(TextBox1.Text, TextBox2.Text, TextBox3.Text)
    
            classe1.CarregaListBox()
            ListBox1.Items.Add(classe1.id)
    Veja, Ao carregar o form ele ja carrega nossos ids


    Ja incluimos ja listamos agora só falta excluir e claro... EDITAR, Eu esqueci disso, Mas não se preocupe, Ja iremos fazer isso.

    Mas antes disso temos que fazer uma pequena "gambiarra" Quando o usuário selecionar o listbox as informações do usuário irão parar nos textbox para alteração ou exclusão...

    Teremos que fazer tudo isso no evento SelectedIndexChanged do listbox1

    Ai esta:
    Código:
     Public Sub carregaTextBox()
    
            Dim conexao As New SqlClient.SqlConnection
    
            conexao.ConnectionString = My.Settings.CN1
            conexao.Open()
    
    
            Dim comandos As New SqlClient.SqlCommand
            comandos.CommandText = "SELECT * FROM TB_User WHERE id_Usu = " & idtext
    
    
            comandos.CommandType = CommandType.Text
    
            comandos.Connection = conexao
    
            Dim leitor As SqlClient.SqlDataReader
            leitor = comandos.ExecuteReader
            While leitor.Read
                NomeText = leitor("Nome_Usu")
                SenhaText = leitor("Senha_Usu")
                EmailText = leitor("Email_Usu")
            End While
    
            conexao.Close()
    
    
        End Sub
    Agora iremos editar...
    Portanto coloque um novo botão com o texto de editar
    O método dele será EditarBanco

    Código:
     Public Sub editarBanco()
            Dim conexao As New SqlClient.SqlConnection
    
            conexao.ConnectionString = My.Settings.CN1
            conexao.Open()
    
    
            Dim comandos As New SqlClient.SqlCommand
            comandos.CommandText = "UPDATE SET(Email_Usu,Senha_Usu,Nome_Usu) VALUES(@NOME,EMAIL,@SENHA) WHERE ID_Usu =" & idtext
            comandos.Parameters.Add("@NOME", SqlDbType.VarChar).Value = Nome
            comandos.Parameters.Add("EMAIL", SqlDbType.VarChar).Value = Email
            comandos.Parameters.Add("@SENHA", SqlDbType.VarChar).Value = Senha
            comandos.CommandType = CommandType.Text
    
            comandos.Connection = conexao
    
       
    
            conexao.Close()
        End Sub
    Agora falta o excluir, o método será DeletaBanco

    Código:
    Public Sub DeletaBanco()
            Dim conexao As New SqlClient.SqlConnection
    
            conexao.ConnectionString = My.Settings.CN1
            conexao.Open()
    
    
            Dim comandos As New SqlClient.SqlCommand
            comandos.CommandText = "DELETE FROM TB_User WHERE ID_Usu = " & id
         
            comandos.ExecuteNonQuery()
            comandos.Connection = conexao
    
    
    
            conexao.Close()
    Pronto Estamos listando,Excluindo,Editando e inserindo

    Até mais...
    "Não me sinto obrigado a acreditar que o mesmo Deus que nos dotou de sentidos, razão e intelecto, pretenda que não os utilizemos."
    - Galileu Galilei

  • Font Size
    #2
    Muito bom mesmo!
    "Where there's a Shell, there is a way"

    Comment

    X
    Working...
    X