![]() |
|
||||
![]() Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
Você está aqui: ASP.NET ::: ASP.NET + SQL Server ::: Inserção (adição, gravação) de dados |
Como inserir dados em uma tabela do SQL Server usando o controle <asp:SqlDataSource>Quantidade de visualizações: 12303 vezes |
O controle <asp:SqlDataSource> do ASP.NET é muito útil no desenvolvimento de pequenas aplicações web que precisam interagir com o banco de dados SQL Server. Este controle possui uma propriedade ConnectionString que nos permite usá-lo para obter uma conexão com o banco de dados. Além disso, por meio de suas propriedades SelectCommand, InsertCommand, DeleteCommand, etc, nós fornecemos o comando (query) a ser executada no banco de dados. Nesta dica eu mostrarei, passo-a-passo, como criar uma página ASP.NET contendo um formulário e um controle <asp:SqlDataSource> que possibilitará inserir as informações do formulário em uma tabela chamada contatos. Esta tabela pode ser criada com o seguinte comando DDL CREATE TABLE: CREATE TABLE [dbo].[contatos] ( [id] int IDENTITY(1, 1) NOT NULL, [nome] varchar(100) COLLATE Latin1_General_CI_AS NOT NULL, [telefone] varchar(30) COLLATE Latin1_General_CI_AS NULL, [email] varchar(50) COLLATE Latin1_General_CI_AS NULL, PRIMARY KEY CLUSTERED ([id]) ) Veja que esta tabela possui os campos id, nome, telefone e email. Como o campo id é auto-incremento, não precisamos nos preocupar com ele. Assim, vamos criar um formulário contendo três caixas de texto <asp:TextBox>, um <asp:Button> e um controle <asp:SqlDataSource>. Veja o código para a página Default.aspx: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Debug="true" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat="server"> <title>Estudos ASP.NET</title> </head> <body> <form id="form1" runat="server"> <asp:Label ID="Label1" runat="server" Text="Nome:" AssociatedControlID="txtNome"> </asp:Label><br /> <asp:TextBox ID="txtNome" runat="server" Width="370px"></asp:TextBox><br /> <asp:Label ID="Label2" runat="server" Text="Telefone:" AssociatedControlID="txtTelefone"></asp:Label><br /> <asp:TextBox ID="txtTelefone" runat="server" Width="370px"></asp:TextBox><br /> <asp:Label ID="Label3" runat="server" Text="E-Mail:" AssociatedControlID="txtEmail"></asp:Label><br /> <asp:TextBox ID="txtEmail" runat="server" Width="370px"></asp:TextBox><br /> <asp:Button ID="Button1" runat="server" Text="Gravar" onclick="Button1_Click" /><br /> <asp:Label ID="Label4" runat="server" Text="Resultado da operação"> </asp:Label> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:estudosConnectionString %>" InsertCommand="INSERT INTO contatos(nome, telefone, email) VALUES(@nome, @telefone, @email)"> <InsertParameters> <asp:FormParameter name="nome" FormField="txtNome" /> <asp:FormParameter name="telefone" FormField="txtTelefone" /> <asp:FormParameter name="email" FormField="txtEmail" /> </InsertParameters> </asp:SqlDataSource> </form> </body> </html> Vamos deter um pouco nossa atenção no controle <asp:SqlDataSource>. Veja que usamos sua propriedade ConnectionString para informar a string de conexão registrada no arquivo web.config. Em minhas outras dicas sobre este controle você aprenderá a registrar a string de conexão diretamente no controle SqlDataSource. Em seguida nós informamos a instrução SQL INSERT na propriedade InsertCommand. Veja que esta instrução possui os parâmetros @nome, @telefone e @email e os valores para estes virão do formulário. Desta forma, um elemento <InsertParameters> nos auxilia na tarefa de fornecer os parâmetros adequados à instrução INSERT, de modo que não precisamos usar muito código C# ou VB.NET neste exemplo. Note que, dentro do elemento <InsertParameters> nós temos três elementos <asp:FormParameter>. São estes que nos permitem fazer a ponte entre os parâmetros da instrução SQL INSERT e os campos do formulário. Veja agora o código para o arquivo de code-behind Default.aspx.cs: using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class _Default : System.Web.UI.Page { protected void Button1_Click(object sender, EventArgs e){ // vamos inserir os dados do formulário na tabela SqlDataSource1.Insert(); // vamos limpar os campos do formulário txtNome.Text = ""; txtTelefone.Text = ""; txtEmail.Text = ""; // vamos colocar o foco no campo txtNome txtNome.Focus(); // vamos mostrar o resultado da operação Label4.Text = "Dados cadastrados com sucesso."; } } Aqui nós temos a implementação de código para o evento Click do botão. Note que tudo que fizemos foi efetuar uma chamada ao método Insert() do controle SqlDataSource. Basta isso para que os dados já sejam inseridos na tabela do banco de dados. É claro que aqui não fizemos nenhum tratamento de erros nem validação dos dados. Em outras de minhas dicas relacionados ao ASP.NET você aprenderá como isso pode ser feito. |
![]() |
Veja mais Dicas e truques de ASP.NET |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |