ASP.NET  - Editando dados no SQL Server


 

No artigo - ASP.NET - Servidor ASP.NET grátis com acesso a SQL Server - vimos como criar uma conta em um servidor ASP.NET e ter acesso a um banco de dados SQL Server. Vimos também como acessar tabelas do banco de dados e exibir dados em páginas ASP.NET. Na

sequência mostrei como podemos incluir novos dados no SQL Server no artigo - ASP.NET - Inserindo dados no SQL Server.

 

Dando continuidade neste artigo irei abordar a alteração de dados. Desta forma você fica com um sistema web quase completo : exibindo , incluindo e alterando dados em uma base de dados SQL Server.

 

Vamos alterar os dados da tabela clientes criada no primeiro artigo e permitir a alteração dos dados incluídos através de uma página ASP.NET. Vou chamar a página de editaSQL.aspx. Ao executar a página teremos o resultado mostrado na figura abaixo:

 

 

O projeto funciona assim:

 

- Ao carregar a página os dados da tabela são exibidos no componente List .

- O usuário deverá selecionar um nome e clicar no botão - Editar Registro.

- Os dados serão então exibidos nas caixas de texto.

- O usuário realiza as alterações e clica no botão - Atualizar

- Os dados são gravados na tabela

- Para exibir os dados o usuário clica no link - Exibir Clientes

 

Novamente vou utilizar o Web Matrix para criar o formulário e o código da página editaSQL.aspx.

 

- Abra o Web Matrix e crie uma nova página ASP.NET com o nome EditaSQL.aspx.

- Na aba Design inclua os seguintes componentes a partir da toolbox : 1 List , 2 TextBox , 2 Button e 1 label

 

O código completo da página pode ser vista na aba All é dado a seguir:

 

<%@ Page Language="vb" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.SQLClient" %>
<script runat="server">

    Dim codigo as integer
    Dim nome , email as string
    
    Sub Page_Load(Source as Object, E as EventArgs)
                if not Page.IsPostBack then
                BindData
            End If
    End Sub
    
    Sub BindData()
    
    
            Dim sql as string = "Select codigo, nome , email from clientes"
    
             Dim myConn As SqlConnection = New SqlConnection(ConfigurationSettings.AppSettings("conexaoSQL"))
             Dim Cmd as New SQLCommand(sql, MyConn)
    
            Dim objDR as SQLDataReader
    
            Myconn.Open()
    
            objDR=Cmd.ExecuteReader(system.data.CommandBehavior.CloseConnection)
    
            list1.datasource=objDR
    
            list1.DataValueField="codigo"
            list1.datatextfield="nome"
            list1.databind
            list1.selectedindex=0
            Myconn.Close()
    
    End Sub
    
    Sub EditaRegistro(Source as Object, E as EventArgs)
    
            Dim sql as string = "Select codigo, nome, email from Clientes Where codigo = "  & list1.selecteditem.value
    
            Dim objDR as SQLDataReader
    
             Dim myConn As SqlConnection = New SqlConnection(ConfigurationSettings.AppSettings("conexaoSQL"))
             Dim Cmd as New SQLCommand(sql, MyConn)
    
            Myconn.Open()
    
            objDR=Cmd.ExecuteReader(system.data.CommandBehavior.CloseConnection)
    
            While objDR.Read()
               codigo=objDR("codigo")
               nome=objDR("nome")
               email=objDR("email")
            End While
    
            page.databind()
    
            label1.text=""
    
    End Sub
    
    Sub Atualiza(Source as Object, E as EventArgs)
    
    
            Dim sql as string = "Update Clientes Set nome=@nome, email=@email Where codigo=@codigo"
    
             Dim myConn As SqlConnection = New SqlConnection(ConfigurationSettings.AppSettings("conexaoSQL"))
             Dim Cmd as New SQLCommand(sql, MyConn)
    
              cmd.Parameters.Add(New SQLParameter("@codigo", lblID.text))
              cmd.Parameters.Add(New SQLParameter("@nome", frmnome.text))
              cmd.Parameters.Add(New SQLParameter("@email", frmemail.text))
    
            MyConn.Open()
            cmd.ExecuteNonQuery
    
            label1.text="Dados atualizados com sucesso ! "
            BindData
            list1.SelectedIndex=List1.Items.IndexOf(List1.Items.FindByValue(lblID.text))
    
    End Sub

</script>
<html>
<head>
    <title>Atualizando dados no SQL Server</title>
</head>
<body>
    <h2><font face="Trebuchet MS" color="#8080ff">Atualizando dados no SQL Server</font> 
    </h2>
    <form name="form1" runat="server">
        <table style="WIDTH: 654px; HEIGHT: 239px" width="654" border="0">
            <tbody>
                <tr>
                    <td valign="top" align="middle" width="145">
                        <font face="Trebuchet MS"><font color="red"><b><i>Selecione um nome da&nbsp; lista&nbsp;:</i></b> 
                        <br />
                        </font></font>
                        <asp:ListBox id="list1" runat="server" Font-Size="X-Small" Font-Names="Trebuchet MS" Width="186px" height="150px">
</asp:ListBox>
                        <font face="Trebuchet MS">&nbsp;&nbsp;&nbsp; </font>
                        <asp:button id="button1" onclick="EditaRegistro" runat="server" Text="Editar registro"></asp:button>
                    </td>
                    <td valign="top" align="left">
                        <p>
                            <font face="Trebuchet MS"><b><font size="2"></font></b></font>
                        </p>
                        <p>
                            <font face="Trebuchet MS"><b><font size="2">Codigo</font> :</b> </font>
<asp:Label id="lblID" runat="server" font-names="Trebuchet MS" font-bold="True" text="<%# codigo %>" forecolor="Red"></asp:Label>
                            <br />
                            <b><font face="Trebuchet MS"><font size="2">Nome :</font> </font></b>
                            <asp:textbox id="frmnome" runat="server" Width="213px" Text="<%# nome %>"></asp:textbox>
                            <br />
                            <b><font face="Trebuchet MS"><font size="2">Email :</font> </font></b>
                            <asp:textbox id="frmemail" runat="server" Width="317px" Text="<%# email %>"></asp:textbox>
                            <br />
                            <br />
                            <font face="Trebuchet MS"></font> 
                            <asp:button id="button2" onclick="Atualiza" runat="server" Text="Aualizar"></asp:button>
                            <font face="Trebuchet MS"></font><i>
<asp:Label id="label1" runat="server" font-names="Trebuchet MS" font-bold="True" forecolor="Red" font-size="X-Small">
</asp:Label></i>
                            <br />
                            <i><font face="Trebuchet MS"></font></i> 
                        </p>
                        <p align="center">
                            <font face="Trebuchet MS"><strong><a href="default.aspx">Exibir Clientes</a></strong></font> 
                        </p>
                        <p>
                            <i>&nbsp; </i>
                        </p>
                    </td>
                </tr>
            </tbody>
        </table>
    </form>
</body>
</html>

 

 

O código possui três rotinas principais:

  1. BindData() - Exibe os dados no componente List

  2. EditaRegistro(Source as Object, E as EventArgs) - Faz a edição de registros da tabela Clientes.

  3. Atualiza(Source as Object, E as EventArgs) - Atualiza a tabela clientes com as alterações usando a instrução SQL Update.

Eu sei , é apenas ASP.NET , mas eu gosto..
 


José Carlos Macoratti