C# - Criando um projeto de acesso a dados no SharpDevelop - 2
Na
primeira parte deste artigo eu mostrei como
acessar e selecionar dados de um banco de dados Microsoft Access. Como exemplo
usei o famoso Northwind.mdb e criei uma rotina que permitia selecionar o banco
de dados e a tabela para exibir todos os registros em controle um DataGridView. Neste artigo eu vou mostrar como incluir dados em uma tabela de um banco de dados Microsoft Access usando C# e o SharpDevelop. |
Ao invés de continuar usando o Northwind.mdb eu vou criar um novo banco de dados chamado Cadastro.mdb e uma tabela Clientes contendo a seguinte estrutura:
Tabela Clientes do banco de dados Cadastro.mdb |
Nota: Para saber como criar um banco de dados usando o Microsoft Access, usando SQL Server, via código , usando ADO veja o meu artigo: Criar banco de dados via Código - Access , SQL Server
Vou manter toda a estrutura criada na primeira parte do artigo: Acesso a tabela Clientes com seleção de todos os dados e exibição em um controle DataGridView.
Desta forma nada irá mudar , apenas o nome do banco de dados e da tabela.
Irei criar um novo projeto usando o SharpDevelop de forma a poder desenvolver todas as operações básicas de dados.
Inicie o SharpDevelop e no menu Arquivo criar uma nova Solução através da opção: Novo -> Solução;
Na janela Novo Projeto expanda a pasta C# e selecione Aplicações Windows e em modelos selecione Aplicação Windows;
A seguir informe o nome Cadastro e o local onde o projeto será criado, clicando no botão Criar;
No formulário MainForm.cs vou incluir dois controles Buttons: um novo botão para incluir dados(btnIncluir) e outro botão (btnEncerrar) para encerrar a aplicação;
Para incluir dados eu vou abrir um novo formulário exibindo os campos para que o usuário digite os dados e a seguir clique em um botão para salvar os dados na tabela Clientes.
Então a partir do menu Projeto selecione Adicionar -> Novo Item e a seguir na janela Novo Arquivo selecione C# -> Aplicações Windows , em modelos escolha Formulário e informe o nome frmIncluir.cs;
Neste formulário vamos definir o seguinte leiaute:
Temos os
seguintes controles inseridos neste formulário: - 7 controles Labels - 7 controles TextBox :
- 2 controles Button
|
Aguarde o próximo artigo onde irei mostrar como incluir dados usando C# no SharpDevelop.
Como faremos para abrir o formulário frmincluir.cs a partir do botão Incluir do formulário MainForm.cs ?
Para isso vamos incluir o seguinte código no evento Click do botão btnIncluir do formulário MainForm.cs:
void BtnIncluirClick(object sender, EventArgs e) { frmIncluir frm2 = new frmIncluir(); frm2.ShowDialog(); iniciaAcesso(); } |
Este código irá abrir o formulário frmincluir no modo modal de forma que ele terá que ser encerrado para o processamento continuar.
No evento Click do botão Salvar do formulário frmIncluir.cs devemos incluir o código para salvar os dados. O código é exibido a seguir:
void BtnSalvarClick(object sender, EventArgs e) { if (validaDados()) { SalvaDados(); } else { MessageBox.Show("Dados Inválidos..."); txtNome.Focus(); return; } } |
Este código irá salvar os dados se a validação for efetuada com sucesso. Devemos então criar a rotina para validar os dados conforme abaixo:
private Boolean validaDados() { if (txtNome.Text == string.Empty)
return
false; if (txtEndereco.Text == string.Empty) return false;
if (txtCidade.Text == string.Empty) return false;
if (txtEstado.Text == string.Empty) return false;
if (txtCep.Text == string.Empty) return false;
return true; } |
A rotina de validação verifica se algo foi digitado nos controles TextBox; vai retornar true somente se todos os dados forem informados;
Falta a rotina para salvar os dados que é exibida a seguir:
private void SalvaDados() { string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\dados\\Cadastro.mdb"; string strSQL = "INSERT INTO Clientes(nome,endereco,cidade,estado,cep,telefone)"
+ " VALUES ('" +
txtNome.Text +
"','" +
txtEndereco.Text +
"','" + txtCidade.Text
+ "','"
+ _
//cria a conexão com o banco de dados OleDbConnection dbConnection = new OleDbConnection(strConnection);
//Cria o comando que inicia a query OleDbCommand cmdQry = new OleDbCommand(strSQL, dbConnection); try { // abre o banco dbConnection.Open(); // executa a query cmdQry.ExecuteNonQuery(); // MessageBox.Show("Dados Salvos com sucesso."); } //Trata a exceção catch (OleDbException ex) { MessageBox.Show("Error: " + ex.Message); } finally { //fecha a conexao dbConnection.Close(); } } |
O importe a destacar nesta rotina é o seguinte:
Estou definindo uma instrução SQL INSERT INTO de e usando os valores informados nos controles TextBox para incluir em cada campo da tabela Clientes. Note que o campo codigo não foi informado pois é um campo auto-numeração;
Nota: Para saber mais sobre operações SQL acompanhe o meu artigo: |
string strSQL = "INSERT INTO Clientes(nome,endereco,cidade,estado,cep,telefone)"
+ "
VALUES ('" + txtNome.Text
+ "','"
+ txtEndereco.Text
+ "','"
+ txtCidade.Text
+ "','"
+ _
txtEstado.Text +
"','" + txtCep.Text
+ "','"
+ txtTelefone.Text
+
"')";
Em seguida criei uma conexão com o banco de dados e defini um objeto Command para executar a instrução SQL via método ExecuteNonQuery; (O objeto Command da ADO.NET fornece o método ExecuteNonQuery para executar consultas que não retornam linhas (registros). )
Nota: Saber mais sobre o objeto Command acompanhe os artigos: |
/cria a conexão com o banco de dados
OleDbConnection dbConnection = new OleDbConnection(strConnection);
//Cria o comando que inicia a consulta inclusão
OleDbCommand cmdQry = new OleDbCommand(strSQL, dbConnection);
try
{
// abre o banco
dbConnection.Open();
// executa a query
cmdQry.ExecuteNonQuery();
...
Nota: a estrutura Try/Catch/Finally é usada para efetuar o tratamento de exceções sendo que o bloco Finally sempre será executado. Para saber mais acompanhe os artigos: |
O código do botão Encerrar é dado abaixo:
void BtnCancelarClick(object sender, EventArgs e) { this.Close(); } |
Após executar o comando a conexão é fechada e ao retornar ao formulário MainForm.cs chamamos a rotina iniciaAcesso(); para exibir os dados no Grid novamente.
Executando o projeto e clicando no botão Incluir poderemos incluir um novo registro e salvar na tabela Clientes conforme a figura acima.
Então para incluir dados em uma tabela fazemos assim:
Acompanhe a continuação deste artigo aqui : C# - Criando um projeto de acesso a dados no SharpDevelop - 3
Até lá...
Pegue o projeto completo aqui: Cadastro.zip
Veja os
Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique
e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Visual Studio - Dica de produtividade - Quick Launch - Macoratti.net
Visual Studio - Dica de produtividade - Nuget - Macoratti.net
.NET - Dicas de site com livros gratuitos para estudo - Macoratti.net