ASP.NET - Usando diferentes
controles para inserir dados
Neste artigo vou mostrar como inserir dados em uma tabela de um banco de dados Access. Isto você já deve estar careca de saber. A novidade é que vou usar os componentes radiobuttonList e dropdownlist para receber a seleção do usuário e gravar na tabela.
Outra novidade é que vou usar uma função que via objeto DataReader vai contar quantos registros existem na tabela. Vou fazer isto pois quero permitir que sejam gravados somente 15 registros na tabela.
A primeira coisa é criar um banco de dados Access chamado Vendas.mdb e uma tabela chamada Clientes com a seguinte estrutura:

Vamos agora abrir o Web Matrix e criar um novo projeto do tipo ASP.NET page com o nome de DBInserir.aspx.
Na guia Design inclua os componentes do tipo servidor conforme a figura abaixo:
Os controles usados são:
- 3 controles TextBox : txtNome
, txtEndereco e txtEmail
- 1 controle radioButtonList : rblSexo
- 1 controle DropDowlist : ddlCargo
- 1 controle Button : Button1
- 1 Controle label : Label1
- 1 controle DataGrid : DataGrid1
![]() |
A guia HTML deverá exibir o seguinte código gerado automaticamente:
<html>
<head>
<title>Inserindo dados usando diferentes controles de servidor</title>
</head>
<body>
<form id="form1" runat="server">
<p>
<img style="WIDTH: 239px; HEIGHT: 45px" height="32" src="maco1b.gif" width="233" border="0" />
<font color="#0000a0"> <font face="Verdana" size="4">Inserindo
dados usando diferentes controles de servidor</font></font>
</p>
<hr />
<p>
<font face="Verdana" size="2">Nome : </font>
<asp:TextBox id="txtNome" Runat="server" Width="221px"></asp:TextBox>
<br />
<font face="Verdana" size="2">Endereco : </font>
<asp:TextBox id="txtEndereco" Runat="server" Width="220px"></asp:TextBox>
<br />
<font face="Verdana" size="2">Email : </font>
<asp:TextBox id="txtEmail" Runat="server" Width="219px"></asp:TextBox>
<br />
</p>
<p>
<font face="Verdana" size="2">Sexo: </font>
<asp:RadioButtonList id="rblSexo" Runat="server" RepeatDirection="Horizontal">
<asp:ListItem>Masculino</asp:ListItem>
<asp:ListItem>Feminino</asp:ListItem>
</asp:RadioButtonList>
</p>
<p>
<font face="Verdana" size="2">Cargo :
<br />
</font>
<asp:DropDownList id="ddlCargo" Runat="server" Width="176px">
<asp:ListItem Value="Diretor">Diretor</asp:ListItem>
<asp:ListItem Value="Gerente">Gerente</asp:ListItem>
<asp:ListItem Value="Vendedor">Vendedor</asp:ListItem>
<asp:ListItem Value="Suporte">Suporte</asp:ListItem>
</asp:DropDownList>
<br />
</p>
<p>
<asp:Button id="button1" onclick="Inserir" Runat="server" Text="Inserir dados na tabela Clientes"></asp:Button>
<br />
<asp:Label id="label1" runat="server"></asp:Label>
<br />
<asp:Datagrid id="DataGrid1" Runat="server" BorderColor="#CCCCCC" Font-Size="8pt" Font-Name="Arial"
BackColor="White" Headerstyle-Font-Size="8" Headerstyle-Font-Name="Arial" Headerstyle-BackColor="#BDCFE7"
cellpadding="3" Width="555px" Height="106px" Font-Names="Arial" BorderStyle="None" BorderWidth="1px">
<FooterStyle forecolor="#000066" backcolor="White"></FooterStyle>
<HeaderStyle font-size="8pt" font-names="Arial" font-bold="True" forecolor="White" backcolor="#006699"></HeaderStyle>
<PagerStyle horizontalalign="Left" forecolor="#000066" backcolor="White" mode="NumericPages"></PagerStyle>
<SelectedItemStyle font-bold="True" forecolor="White" backcolor="#669999"></SelectedItemStyle>
<ItemStyle forecolor="#000066"></ItemStyle>
</asp:Datagrid>
</p>
</form>
</body>
</html>
|
O código de script VB.NET usado pela aplicação é exibido na guia Code , conforme a seguir:
<%@ Page Language="vb" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.OleDb" %>
<script runat="server">
Dim strConexao as string = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("..\Dados\Vendas.mdb")
Dim intNum as Integer
Sub Inserir(Source as Object, E as EventArgs)
dbConta
if intNum < 15 then if txtNome.text <> "" then
Dim strSQL as string = "Insert into Clientes (Nome, Endereco, Email, Sexo, Cargo)
Values(@Nome, @Endereco, @Email, @Sexo, @Cargo)"
Dim conexao as New OleDbConnection(strConexao)
Dim Cmd as New OleDbCommand(strSQL, conexao)
cmd.Parameters.Add(New OleDbParameter("@Nome", txtNome.text))
cmd.Parameters.Add(New OleDbParameter("@Endereco", txtEndereco.text))
cmd.Parameters.Add(New OleDbParameter("@Email", txtEmail.text))
cmd.Parameters.Add(New OleDbParameter("@sexo", rblSexo.SelectedItem.text))
cmd.Parameters.Add(New OleDbParameter("@cargo", ddlCargo.SelectedItem.text))
conexao.Open()
Cmd.ExecuteNonQuery()
conexao.Close()
label1.text = "Informações gravadas com sucesso !"
limpaControles
end if
else
label1.text= ("<b><i><font Color=""#8000FF"">O número máximo de registros permitidos para
gravação foi atingido" & " </font></i> : </b>" & intNum)
end if
exibirDados End Sub Sub exibirDados()
Dim strSQL as string = "Select * from Clientes"
Dim conexao as New OleDbConnection(strConexao)
Dim objDR as OleDbDataReader
Dim Cmd as New OleDbCommand(strSQL, conexao)
conexao.Open()
objDR=Cmd.ExecuteReader(system.data.CommandBehavior.CloseConnection) DataGrid1.DataSource = objDR
DataGrid1.DataBind()
conexao.Close()
End Sub
Sub limpaControles()
txtNome.text=""
txtEndereco.text=""
txtEmail.text=""
End Sub
Sub dbConta() Dim conexao as New OleDBConnection(strConexao)
Dim MySQL as string = "Select * from Clientes"
Dim objDR as OleDBDataReader
Dim Cmd as New OLEDBCommand(MySQL, conexao)
conexao.Open()
objDR=Cmd.ExecuteReader(system.data.CommandBehavior.CloseConnection)
intNum=0 While objDR.Read()
intNum = intNum+1
End While
End Sub </script>
|
Perceba que o meu banco de dados esta em uma pasta chamada dados que deve estar fora da pasta onde esta o arquivo dbInserir.aspx.
- A rotina Inserir() faz a conexão com o banco de dados e recebe os parâmetros informados pelo usuário. Ela então usa o objeto Command para executar uma instrução SQL Insert Into para inserir os dados na tabela clientes.
- ExibirDados() - Faz uma conexão usando um DataReader e exibe os dados da tabela clientes em um DataGrid
- A rotina dbConta() utiliza um objeto DataReader para contar quantos registros existem na tabela clientes.
Teste o projeto on-line aqui : teste on-line (somente permite incluir 15 registros)
Pegue o código completo aqui :dbInserir.zip
![]()
Até mais ver ...![]()
José Carlos Macoratti