DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

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

Na próxima tela escolha Database e clique em Next.

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

Agora clique na caixa de texto do Database file name e digite “banco_dados”, esse será o nome do nosso banco de dados, depois clique no botão OK.

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

Agora vamos montar o Form2, arraste para ele os seguintes objetos: 4 botões, 1 DataGridView e 8 TextBox. Deixe os texbox do lado esquerdo dos botões "Delete" e "Insert" em ReadOnly, arraste também o Dataset e BindingSource.

Imagem 22
Vamos 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





    1 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Irineu Jr
Artigo,muito bacana, bem didático e objetivo.

Parabéns
[há +1 mês] - Responder

 



[Este post ainda não foi associado a uma sequência]
Publicidade
Autor
Geisson Pires Da Silva

Técnico em Informática




Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
0   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03