Inserir, atualizar e excluir: conexão de banco de dados ASP.NET
⚡ Resumo Inteligente
O ASP.NET se conecta a bancos de dados como o SQL Server e Oracle Por meio do ADO.NET, usando as classes SqlConnection, SqlCommand, SqlDataReader e SqlDataAdapter para abrir uma conexão e executar operações de seleção, inserção, atualização e exclusão em registros armazenados.
Acessar dados de um banco de dados é um aspecto importante de qualquer linguagem de programação. É essencial que qualquer linguagem de programação tenha a capacidade de trabalhar com bancos de dados.
O ASP.NET tem a capacidade de trabalhar com diferentes tipos de bancos de dados. Ele pode funcionar com os bancos de dados mais comuns, como... Oracle e Microsoft SQL Servidor.
Ele também tem a capacidade de trabalhar com novas formas de bancos de dados, como MongoDB e MySQL.
Fundamentos de Conectividade de Banco de Dados
O ASP.NET tem a capacidade de trabalhar com a maioria dos bancos de dados, sendo os mais comuns: Oracle e Microsoft SQL Server. Mas com cada banco de dados, a lógica por trás de trabalhar com todos eles é basicamente a mesma.
Em nossos exemplos, veremos como trabalhar com o Microsoft SQL Server como nosso banco de dados. Para fins de aprendizagem, pode-se baixar e usar o Microsoft SQL Server Express Edition. Este é um software de banco de dados gratuito fornecido por Microsoft.
Ao trabalhar com bancos de dados, os seguintes conceitos são comuns a todos os bancos de dados:
- Conexão – Para trabalhar com os dados de um banco de dados, o primeiro passo óbvio é a conexão. A conexão a um banco de dados normalmente consiste nos parâmetros mencionados abaixo.
- Nome do banco de dados ou fonte de dados – O primeiro parâmetro importante é o nome do banco de dados. Cada conexão só pode funcionar com um banco de dados por vez.
- Credenciais – O próximo aspecto importante é o nome de usuário e a senha. Eles são usados para estabelecer uma conexão com o banco de dados.
- Parâmetros opcionais – Você pode especificar parâmetros opcionais sobre como o .NET deve lidar com a conexão ao banco de dados. Por exemplo, pode-se especificar um parâmetro para determinar por quanto tempo a conexão deve permanecer ativa.
- Selecionando dados do banco de dados – Assim que a conexão é estabelecida, os dados são obtidos do banco de dados. O ASP.NET tem a capacidade de executar o comando SQL SELECT no banco de dados. A instrução SQL pode ser usada para obter dados de uma tabela específica no banco de dados.
- Inserindo dados no banco de dados – O ASP.NET é usado para inserir registros no banco de dados. Os valores para cada linha que precisa ser inserida no banco de dados são especificados no ASP.NET.
- Atualizando dados no banco de dados – O ASP.NET também pode ser usado para atualizar registros existentes no banco de dados. Novos valores podem ser especificados no ASP.NET para cada linha que precisa ser atualizada no banco de dados.
- Excluindo dados de um banco de dados – O ASP.NET também pode ser usado para excluir registros do banco de dados. O código é escrito para excluir uma linha específica do banco de dados.
Agora que vimos a parte teórica de cada operação, vejamos como realizar operações de banco de dados em ASP.NET.
Conexões de banco de dados ASP.NET
Vamos agora analisar o código necessário para criar uma conexão com um banco de dados. Em nosso exemplo, nos conectaremos a um banco de dados chamado Demodb. As credenciais usadas para conectar ao banco de dados são fornecidas abaixo:
- Nome de usuário – sa
- Senha – demo123
Vamos trabalhar com a aplicação web que criamos nas seções anteriores.
- Comece a adicionar operações de banco de dados a ele.
- Nosso exemplo mostra como estabelecer uma conexão simples. Essa conexão é feita com o banco de dados Demodb. Isso ocorre quando a página é carregada pela primeira vez.
- Quando a conexão for estabelecida, uma mensagem será enviada ao usuário. A mensagem indicará que a conexão foi estabelecida.
Vamos seguir os passos mencionados abaixo para alcançar esse objetivo.
Passo 1) Primeiramente, certifique-se de que seu aplicativo web (DemoApplication) esteja aberto no Visual Studio. Double-Clique no arquivo demo.aspx.cs para inserir o código de conexão com o banco de dados.
Passo 2) Adicione o código abaixo que será usado para estabelecer uma conexão com o banco de dados.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string connectionString; SqlConnection cnn; connectionString = @"Data Source=WIN-50GP30FGO75;Initial Catalog=Demodb;User ID=sa;Password=demo123"; cnn = new SqlConnection(connectionString); cnn.Open(); Response.Write("Connection Made"); cnn.Close(); } } }
Code Explicação:-
- O primeiro passo é criar variáveis. Elas serão usadas para criar a string de conexão e a conexão com o banco de dados SQL Server.
- O próximo passo é criar a string de conexão. A string de conexão consiste nas seguintes partes:
- Fonte de dados – Este é o nome do servidor onde reside o banco de dados. No nosso caso, ele reside em uma máquina chamada WIN-50GP30FGO75.
- O Catálogo Inicial é usado para especificar o nome do banco de dados.
- O ID de usuário e a senha são as credenciais necessárias para conectar-se ao banco de dados.
- Em seguida, atribuímos a string de conexão à variável cnn.
- A variável cnn é do tipo SqlConnection. Isso é usado para estabelecer uma conexão com o banco de dados.
- SqlConnection é uma classe do ASP.NET usada para criar uma conexão com um banco de dados.
- Para usar essa classe, primeiro você precisa criar um objeto dessa classe. Portanto, aqui criamos uma variável chamada cnn que é do tipo SqlConnection.
- Em seguida, usamos o método Open da variável cnn para abrir uma conexão com o banco de dados. Exibimos uma mensagem ao usuário informando que a conexão foi estabelecida. Isso é feito por meio do método Response.Write. Por fim, fechamos a conexão com o banco de dados.
Quando o código acima é definido e o projeto é executado usando Visual StudioVocê verá a seguinte saída. Depois que o formulário for exibido, clique no botão Conectar.
Resultado:-
A mensagem de saída exibida no navegador mostrará que a conexão com o banco de dados foi feita.
Ler banco de dados ASP.NET usando SqlDataReader
Para demonstrar os dados acessados usando ASP.NET, vamos assumir os seguintes artefatos em nosso banco de dados.
- Uma tabela chamada demotb. Esta tabela será usada para armazenar o ID e os nomes de vários tutoriais.
- A tabela terá duas colunas, uma chamada TutorialID e a outra chamada TutorialName.
- No momento, a tabela terá duas linhas conforme mostrado abaixo.
| ID do tutorial | TutorialNome |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
Vamos alterar o código para que possamos consultar esses dados e exibir as informações na própria página da web. Observe que o código inserido é uma continuação do código escrito para o módulo de conexão de dados.
Passo 1) Vamos dividir o código em duas partes:
- A primeira parte será construir nossa instrução SELECT. Ela será usada para ler os dados do banco de dados.
- Em seguida, executaremos a instrução SELECT no banco de dados. Isso buscará todas as linhas da tabela, conforme o esperado.
Code Explicação:-
- O primeiro passo é criar as seguintes variáveis:
- SqlCommand – O SqlCommand é uma classe definida em C#. Essa classe é usada para realizar operações de leitura e gravação no banco de dados.
- O objeto DataReader é usado para obter todos os dados especificados pela consulta SQL. Podemos então ler todas as linhas da tabela, uma por uma, usando o leitor de dados.
- Em seguida, definimos duas variáveis de string. Uma é `sql`, para armazenar nossa string de comando SQL. A outra é `Output`, que conterá todos os valores da tabela.
- O próximo passo é definir a instrução SQL. No nosso caso, é “SELECT TutorialID, TutorialName FROM demotb”. Isso buscará todas as linhas da tabela demotb.
- A seguir, criamos o objeto de comando que é usado para executar a instrução SQL no banco de dados. No comando SQL, você deve passar o objeto de conexão e a string SQL.
- Em seguida, executamos o comando de leitura de dados, que buscará todas as linhas da tabela demotb.
- Agora que temos todas as linhas da tabela, precisamos de um mecanismo para acessar as linhas uma a uma.
- Para isso, utilizamos a instrução while para acessar as linhas do leitor de dados uma de cada vez.
- Em seguida, usamos o método GetValue para obter o valor de TutorialID e TutorialName.
Passo 2) Na etapa final, exibimos o resultado para o usuário. Em seguida, fechamos todos os objetos relacionados à operação do banco de dados.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand command; SqlDataReader dataReader; String sql, Output = " "; sql = "Select TutorialID,TutorialName from demotb"; command = new SqlCommand(sql, cnn); dataReader = command.ExecuteReader(); while (dataReader.Read()) { Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>"; } Response.Write(Output); dataReader.Close(); command.Dispose(); cnn.Close(); } } }
Code Explicação:-
- Continuamos nosso código exibindo o valor da variável Output. Isso é feito usando o método Response.Write.
- Finalmente, fechamos todos os objetos relacionados à nossa operação de banco de dados. Lembre-se, isso é sempre uma boa prática.
Ao configurar o código acima e executar o projeto usando o Visual Studio, você obterá a seguinte saída.
Resultado:-
Na saída, você pode ver claramente que o programa conseguiu obter os valores do banco de dados. Os dados são então exibidos no navegador para o usuário.
Inserir registro de banco de dados usando InsertCommand
Assim como no acesso a dados, o ASP.NET também permite inserir registros no banco de dados. Vamos considerar a mesma estrutura de tabela usada para inserir registros.
| ID do tutorial | TutorialNome |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
Vamos alterar o código em nosso formulário para que possamos inserir a seguinte linha na tabela:
| ID do tutorial | TutorialNome |
|---|---|
| 3 | VB.Net |
Passo 1) Como primeiro passo, vamos adicionar o seguinte código ao nosso programa. O trecho de código abaixo será usado para inserir um registro em nosso banco de dados.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand command; SqlDataAdapter adapter = new SqlDataAdapter(); String sql = ""; sql = "Insert into demotb(TutorialID,TutorialName) values(3,'VB.Net')"; command = new SqlCommand(sql, cnn); adapter.InsertCommand = new SqlCommand(sql, cnn); adapter.InsertCommand.ExecuteNonQuery(); command.Dispose(); cnn.Close(); } } }
Code Explicação:-
- O primeiro passo é criar as seguintes variáveis:
- SqlCommand – Este tipo de dados é usado para definir objetos que executam operações SQL em um banco de dados. Este objeto conterá o comando SQL que será executado em nosso banco de dados SQL Server.
- O objeto DataAdapter é usado para executar comandos SQL de inserção, exclusão e atualização.
- Em seguida, definimos uma variável de string, chamada sql, para armazenar nossa string de comando SQL.
- O próximo passo é definir a instrução SQL. No nosso caso, estamos executando uma instrução INSERT. Isso irá inserir o registro com TutorialID=3 e TutorialName=VB.Net.
- A seguir, criamos o objeto de comando que é usado para executar a instrução SQL no banco de dados. No comando SQL, você deve passar o objeto de conexão e a string SQL.
- Em nosso comando de adaptador de dados:
- Associe o comando SQL de inserção ao adaptador.
- Em seguida, utilize o método ExecuteNonQuery. Este método é usado para executar a instrução INSERT em nosso banco de dados.
- O método ExecuteNonQuery é usado em C# para emitir quaisquer instruções DML (operação de inserção, exclusão e atualização) no banco de dados.
- Finalmente, fechamos todos os objetos relacionados à nossa operação de banco de dados. Lembre-se, isso é sempre uma boa prática.
Passo 2) Como segundo passo, vamos adicionar o mesmo código da seção de acesso aos dados. Isso servirá para exibir os dados recentes da tabela no navegador. Para isso, adicionaremos o código abaixo ao arquivo demo.aspx.cs.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand command; SqlDataReader dataReader; String sql, Output = " "; sql = "Select TutorialID,TutorialName from demotb"; command = new SqlCommand(sql, cnn); dataReader = command.ExecuteReader(); while (dataReader.Read()) { Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>"; } Response.Write(Output); dataReader.Close(); command.Dispose(); cnn.Close(); } } }
Quando o código acima for configurado e o projeto for executado no Visual Studio, você obterá a seguinte saída.
Resultado:-
Na janela do navegador, você verá que a linha foi inserida com sucesso no banco de dados.
Atualizar registro do banco de dados usando UpdateCommand
O ASP.NET tem a capacidade de atualizar registros existentes em um banco de dados. Vamos usar a mesma estrutura de tabela utilizada no exemplo anterior para inserir registros.
| ID do tutorial | TutorialNome |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
| 3 | VB.Net |
Vamos alterar o código em nosso formulário para que possamos atualizar a seguinte linha. O valor antigo da linha é TutorialID como 3 e TutorialName como VB.Net, que atualizaremos para “VB.Net Complete”, enquanto o valor da linha para TutorialID permanecerá o mesmo.
Linha antiga
| ID do tutorial | TutorialNome |
|---|---|
| 3 | VB.Net |
Nova linha
| ID do tutorial | TutorialNome |
|---|---|
| 3 | VB.Net Completo |
Passo 1) Como primeiro passo, vamos adicionar o seguinte código ao nosso programa. O trecho de código abaixo será usado para atualizar um registro existente em nosso banco de dados.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand command; SqlDataAdapter adapter = new SqlDataAdapter(); String sql = ""; sql = "Update demotb set TutorialName='VB.Net Complete' where TutorialID=3"; command = new SqlCommand(sql, cnn); adapter.InsertCommand = new SqlCommand(sql, cnn); adapter.InsertCommand.ExecuteNonQuery(); command.Dispose(); cnn.Close(); } } }
Code Explicação:-
- O primeiro passo é criar as seguintes variáveis:
- SqlCommand – Este tipo de dados é usado para definir objetos que executam operações SQL em um banco de dados. Este objeto conterá o comando SQL que será executado em nosso banco de dados SQL Server.
- O objeto DataAdapter é usado para executar comandos SQL de inserção, exclusão e atualização.
- Em seguida, definimos uma variável de string, chamada sql, para armazenar nossa string de comando SQL.
- O próximo passo é definir a instrução SQL. No nosso caso, estamos executando uma instrução de atualização. Isso atualizará o TutorialName para “VB.Net Complete”. O TutorialID permanecerá inalterado e seu valor será 3.
- Em seguida, criamos o objeto de comando. Este é usado para executar a instrução SQL no banco de dados. No comando SQL, você passa o objeto de conexão e a string SQL.
- Em nosso comando de adaptador de dados, associamos o comando SQL ao nosso adaptador. Em seguida, emitimos o método ExecuteNonQuery. Este método é usado para executar a instrução de atualização em nosso banco de dados.
- Finalmente, fechamos todos os objetos relacionados à nossa operação de banco de dados. Lembre-se, isso é sempre uma boa prática.
Passo 2) Como segundo passo, vamos adicionar o mesmo código da seção de acesso aos dados. Isso servirá para exibir os dados recentes da tabela no navegador. Para isso, adicionaremos o código abaixo.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand command; SqlDataReader dataReader; String sql, Output = " "; sql = "Select TutorialID,TutorialName from demotb"; command = new SqlCommand(sql, cnn); dataReader = command.ExecuteReader(); while (dataReader.Read()) { Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>"; } Response.Write(Output); dataReader.Close(); command.Dispose(); cnn.Close(); } } }
Quando o código acima for configurado e o projeto for executado usando o Visual Studio, você obterá a seguinte saída.
Resultado:-
Na janela do navegador, você verá que a linha foi atualizada com sucesso no banco de dados.
Excluir registro do banco de dados usando DeleteCommand
O ASP.NET pode excluir registros existentes de um banco de dados. Vamos usar a mesma estrutura de tabela utilizada no exemplo anterior para excluir registros.
| ID do tutorial | TutorialNome |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
| 3 | VB.Net Completo |
Vamos alterar o código em nosso formulário para que possamos excluir a seguinte linha:
| ID do tutorial | TutorialNome |
|---|---|
| 3 | VB.Net Completo |
Passo 1) Como primeiro passo, vamos adicionar o seguinte código ao nosso programa. O trecho de código abaixo será usado para excluir um registro existente em nosso banco de dados.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand command; SqlDataAdapter adapter = new SqlDataAdapter(); String sql = ""; sql = "Delete demotb where TutorialID=3"; command = new SqlCommand(sql, cnn); adapter.DeleteCommand = new SqlCommand(sql, cnn); adapter.DeleteCommand.ExecuteNonQuery(); command.Dispose(); cnn.Close(); } } }
Code Explicação:-
- A principal diferença neste código é que agora estamos executando a instrução SQL DELETE. A instrução DELETE é usada para excluir a linha na tabela demotb na qual o TutorialID tem o valor 3.
- Em nosso comando de adaptador de dados, associamos o comando SQL de exclusão ao nosso adaptador. Também emitimos o método ExecuteNonQuery, que é usado para executar a instrução de exclusão em nosso banco de dados.
Passo 2) Como segundo passo, vamos adicionar o mesmo código da seção de acesso aos dados. Isso servirá para exibir os dados recentes da tabela no navegador. Para isso, adicionaremos o código abaixo.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand command; SqlDataReader dataReader; String sql, Output = " "; sql = "Select TutorialID,TutorialName from demotb"; command = new SqlCommand(sql, cnn); dataReader = command.ExecuteReader(); while (dataReader.Read()) { Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>"; } Response.Write(Output); dataReader.Close(); command.Dispose(); cnn.Close(); } } }
Quando o código acima for configurado e o projeto for executado usando o Visual Studio, você obterá a seguinte saída.
Resultado:-
Conectando controles ASP.NET a dados
Vimos como podemos usar comandos do ASP.NET, como SqlCommand e SqlDataReader, para buscar dados de um banco de dados. Também vimos como podemos ler cada linha da tabela e exibi-la na página da web.
Existem métodos disponíveis para vincular controles diretamente a diferentes campos da tabela. No momento, apenas os controles abaixo podem ser vinculados a um aplicativo ASP.NET:
- VerifiqueBoxLista
- Lista de botões de rádio
- Lista suspensa
- ListaBox
Vejamos um exemplo de como podemos usar a vinculação de controles no ASP.NET. Aqui, usaremos uma lista.Box Exemplo: Suponhamos que temos os seguintes dados em nosso banco de dados.
| ID do tutorial | TutorialNome |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
| 3 | VB.Net Completo |
Vamos usar a Lista.Box Vamos controlar e ver como ele pode coletar automaticamente os dados da nossa tabela demotb. Sigamos os passos abaixo para alcançar esse objetivo.
Passo 1) Crie o formulário web básico. Na caixa de ferramentas do Visual Studio, arraste e solte dois componentes: rótulos e lista.BoxEm seguida, execute as seguintes subetapas:
- Insira o valor de texto do primeiro rótulo como TutorialID.
- Insira o valor de texto do segundo rótulo como TutorialName.
A seguir, apresentamos como o formulário ficará após a execução dos passos mencionados acima.
Passo 2) O próximo passo é começar a conectar cada lista.Box para a tabela do banco de dados.
- Primeiro, clique na Lista.Box para TutorialID. Isso abrirá outra caixa de diálogo ao lado do controle.
- Na caixa de diálogo, clique na opção Escolher fonte de dados.
Passo 3) Em seguida, será exibida uma caixa de diálogo. Ela pode ser usada para criar uma nova fonte de dados. A fonte de dados representará uma conexão com o banco de dados. Selecione a opção Nova fonte de dados.
Passo 4) A tela abaixo será exibida após a escolha da nova fonte de dados na última etapa. Aqui precisamos mencionar o tipo de fonte de dados que queremos criar.
- Escolha a opção de banco de dados para trabalhar com um banco de dados SQL Server.
- Agora precisamos dar um nome à nossa fonte de dados. Aqui estamos dando a ele o nome de DemoDataSource.
- Por fim, clicamos no botão OK para prosseguir para a próxima tela.
Passo 5) Agora precisamos criar uma conexão com nosso banco de dados. Na próxima tela, clique no botão Nova Conexão.
Passo 6) Em seguida, você precisa adicionar as credenciais para se conectar ao banco de dados.
- Selecione o nome do servidor onde o SQL Server está instalado.
- Insira o nome de usuário e a senha para se conectar ao banco de dados.
- Selecione o banco de dados como demotb.
- Clique no botão OK.
Passo 7) Na próxima tela, você poderá ver a tabela demotb. Basta clicar no botão Próximo para aceitar a configuração padrão.
Passo 8) Agora você poderá testar a conexão na próxima tela.
- Clique no botão Testar Consulta para verificar se consegue obter os valores da tabela.
- Clique no botão Concluir para concluir o assistente.
Passo 9) Agora, na tela final, você pode clicar no botão OK. Isso vinculará a lista TutorialID.Box para o nome do campo TutorialID na tabela demotb.
Passo 10) Agora é hora de vincular a lista TutorialName.Box ao campo TutorialName.
- Primeiro, clique na lista TutorialName.Box.
- Em seguida, selecione a Fonte de Dados na caixa de diálogo que aparece ao lado da Lista.Box.
Passo 11) Você já verá o DemoDataSource ao escolher a Fonte de Dados na próxima tela.
- Selecione a DemoDataSource.
- Clique no botão OK.
Se todas as etapas acima forem executadas conforme mostrado, você obterá a saída mencionada abaixo.
Resultado:-
A partir da saída, você pode ver que a ListaBoxEles exibem o TutorialID e o TutorialName, respectivamente.




























