ACESSO A BANCO DE DADOS EM C# - NÍVEL BÁSICO (Parte 1)
Criação e acesso a um banco de dados, programa básico que insere, deleta e altera o mesmo.
INTRODUÇÃO
Um dos objetivos deste artigo é demonstrar como criar e acessar um banco de dados pelo C#, para que sejam feitas operações básicas como: buscar, inserir, excluir e alterar dados. Outro objetivo é deixar o código fonte o mais claro e simples possível, ótimo para aqueles que estão começando a conhecer o C#.AGORA VAMOS COMEÇAR
Estarei utilizando o C# Express para esse projeto, abra um novo projeto do tipo WindowsApplication, dê um nome e clique em OK. Primeiro vamos criar um banco de dados, escolha s guia Data e clique em Add New Data Source.
Imagem
1
Imagem
2
Agora clique em New Connection.
Imagem
3
Depois clique em Change.
Imagem
4
Escolha Microsoft SQL Server Database File, pois estaremos utilizando o banco de dados do SQL Server, depois dê um OK.
Imagem
5
Imagem
6
Aproveite para copiar o Connection String, clique no “+”, e copie tudo o que estiver escrito, será necessário para utilizar depois.
Como o banco de dados não existe aparecerá uma janela perguntando se deseja criá-lo, clique em “sim”.
Imagem
7
Também aparecerá uma janela perguntando se deseja copiar o banco de dados para mesma pasta onde o projeto está salvo, escolha “não”, se quiser copiar o banco para pasta do projeto tudo bem, mas se quiser utilizar o banco terá que mudar o Connection String.
Imagem
8
Dê um Next na próxima janela.
Imagem
9
E finalmente clique em Finish na ultima.
Imagem
10
Agora que o banco foi criado vamos criar uma tabela, clique na guia Data, e escolha Show Data Sources.
Imagem
11
Clique com o botão direito em cima do banco_dadosDataSet, depois escolha Edit Data Set with Designer.
Imagem
12
Escolha Database Explorer.
Imagem
13
Agora clique no “+” do banco_dados.mdf, clique com o botão direito sobre Tables e escolha Add New Table.
Imagem
14
Em Column Name, vamos dar um nome a nossa coluna, em Data Type diremos que tipo de dados serão armazenados nessa coluna, criarei apenas dois campos, desta forma:
Em Column Name coloque “nome”, em Data Type coloque nvarchar(50) (quer dizer que este campo receberá uma string de 50 caracteres), em Allow Nulls deixe marcado (serão permitidas linhas vazias)
Vamos criar outro campo, coloque “número” e em Data Type coloque float (isso quer dizer que este campo irá receber números inteiros ou com casas decimais), em Allow Nulls deixe marcado.
Imagem
16
Coloque o nome de Tabela
Imagem
17
Após a tabela ser salva já podemos armazenar dados dentro do banco se quisermos, note que em Tables agora possui uma tabela como no nome que demos a ela e com os campos nome e número, se não estiver visualizando clique no “+” de Tables, agora clique com o botão direito em cima de “tabela” e escolha Show Table Data.
Imagem
18
Do lado esquerdo aparecerá a tabela pronta para ser preenchida, coloque algo para que possamos testar o banco de dados, eu irei colocar dois nomes e números, façam o mesmo.
Imagem
19
Bom até aqui criamos o banco de dados e o preenchemos, agora vamos fazer um programa para conectarmos ao banco. Para começar insira dois Forms, no Form1 coloque 3 botões, e 1 DataGridView
Imagem 20
Depois arraste os objetos Dataset e BindingSource, normalmente eles são inseridos automaticamente.
Imagem 21
Imagem 22Vamos começar pelo Código do Form1, então volte para o Form1 e entre no código do botão1 (clique duas vezes em cima do botão), no meu caso o button1 será o botão “Select” conforme as imagens 20 e 24. Antes de tudo acrescente os namespaces using System.Data e using System.Data.SqlClient no topo do código, conforme a imagem 23.
Imagem 23
O código do button1 ficará assim:
private void button1_Click(object sender, EventArgs e)
{
/*A variável strcon é o connection string que copiamos anteriormente enquanto criávamos o banco de dados, essa variável poderia ser utilizada para todos os botões do programa, mas irei repeti-la várias vezes para fixar a idéia dos passos que precisamos seguir para fazer a conexão com o banco, Obs.: note que o caminho do seu banco precisa estar com “\\” se não estiver coloque */
string strcon = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Documents and Settings\\k\\Meus documentos\\banco_dados.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
SqlConnection conexao = new SqlConnection(strcon); /* conexao irá conectar o C# ao banco de dados */
SqlCommand cmd = new SqlCommand("SELECT * FROM tabela", conexao); /*cmd possui mais de um parâmetro, neste caso coloquei o comando SQL "SELECT * FROM tabela" que irá selecionar tudo(*) de tabela, o segundo parâmetro indica onde o banco está conectado,ou seja se estamos selecionando informações do banco precisamos dizer onde ele está localizado */
Try //Tenta executar o que estiver abaixo
{
conexao.Open(); // abre a conexão com o banco
cmd.ExecuteNonQuery(); // executa cmd
/*Pronto após o cmd.ExecuteNonQuery(); selecionamos tudo o que tinha dentro do banco, agora os passos seguintes irão exibir as informações para que o usuário possa vê-las */ SqlDataAdapter da = new SqlDataAdapter(); /* da, adapta o banco de dados ao nosso projeto */
DataSet ds = new DataSet();
da.SelectCommand = cmd; // adapta cmd ao projeto
da.Fill(ds); // preenche todas as informações dentro do DataSet
dataGridView1.DataSource = ds; //Datagridview recebe ds já preenchido
dataGridView1.DataMember = ds.Tables[0].TableName; /*Agora Datagridview exibe o banco de dados*/
}
catch (Exception ex)
{
MessageBox.Show("Erro "+ex.Message); /*Se ocorer algum erro será informado em um msgbox*/
throw;
}
finally
{
conexao.Close(); /* Se tudo ocorrer bem fecha a conexão com o banco da dados, sempre é bom fechar a conexão após executar até o final o que nos interessa, isso pode evitar problemas futuros */
}
}
Imagem 24
Agora escolha um dos botões que
sobraram para limpar o DataGridView, e o outro para chamar o Form2,
ficará dessa forma:
private void button2_Click(object sender, EventArgs e)
{
Form2 f = new Form2(); //instância de Form2
f.Show(); //abre o Form2
}
private void button3_Click(object sender, EventArgs e)
{
dataGridView1.Columns.Clear(); //apenas limpa o DataGridView
}
Esses foram os códigos do Form1,
agora vamos escrever o código do Form2.
Primeiramente não esqueça de colocar using
System.Data e using System.Data.SqlClient no topo, agora vamos
para o código do button1, no meu caso o botão “Insert”.
private void button1_Click(object sender, EventArgs e) {
string strcon = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Documents and Settings\\k\\Meus documentos\\Visual Studio 2005\\Projects\\conect_sql_server\\conect_sql_server\\banco_dados.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
SqlConnection conexao = new SqlConnection(strcon);
SqlCommand cmd = new SqlCommand("INSERT INTO tabela(nome,numero) VALUES('" + textBox1.Text + "'," + textBox2.Text.Replace(",", ".") + ")", conexao); /* Insere no banco dentro de tabela nos campos nome e número os valores de textBox1 e 4, é necessário colocar o replace no texBox4, pois se o numero tiver "," não irá inserir no banco de dados, a "," representa o próximo campo nessa sintaxe, experimente deixar sem o replace para ver o que acontece
Obs. quando estamos inserindo, deletando, ou alterando um valor no banco de dados, é importante notar que o textbox1 está entre ‘””’ pois essa é sintaxe que usamos quando o valor é uma string, note também que o texbox2 está entre ”” apenas, pois o valor é numérico, nesse caso do tipo float */
try
{
conexao.Open();
cmd.ExecuteNonQuery();
button2_Click(sender, e);
/* chama o evento do click do button2 (na verdade é como se o button2 tivesse sido clicado, ou botão select do form2)sempre que quiser fazer com que ocorra um evento sem que o usuário tenha feito, é só passar o comando acima (se tiver duvida dê com copiar no "private void button2_Click(object sender, EventArgs e)" e deixe do jeito que eu modifiquei) o evento que ocorre quando clicamos no button2 é aquele que busca as informações no banco de dados e depois preenche o DataGridView com elas, ao usar button2_Click(sender, e); estamos fazendo com que aconteça exatamente isso, ao clicarmos no botão Insert ou Delete vai parecer q o campo inserido ou deletado no datagridview foi inserido ou deletado na mesma hora. Experimente comentar a linha button2_Click(sender, e); para ver a diferença. */
}
catch (Exception ex)
{
MessageBox.Show("Erro " + ex.Message);
throw;
}
finally
{
conexao.Close();
}
}
Parte 2
http://www.devmedia.com.br/post-21700-ACESSO-A-BANCO-DE-DADOS-EM-C-NIVEL-BASICO--Parte-2.html



0
0
