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: 12214 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:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

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:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<%@ 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:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

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.

Link para compartilhar na Internet ou com seus amigos:

Veja mais Dicas e truques de ASP.NET

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 33 usuários muito felizes estudando em nosso site.