c sharp com mysql

Download c Sharp Com Mysql

Post on 25-Nov-2015

23 views

Category:

Documents

3 download

Embed Size (px)

TRANSCRIPT

  • 1 Acessando BD com C#

    usando o MySQL

    Profa. Ana Paula Citro Fujarra Rodrigues

    ACESSANDO BD COM C# USANDO O MYSQL

    O Visual Studio pode fazer conexo com muitos gerenciadores de Banco de Dados. Por

    exemplo: Access, SQLServer, MySQL, Oracle, SysBase, entre outros. No nosso caso iremos trabalhar com o MySQl, gerenciador de Banco de Dados gratuito que est disponvel no site www.mysql.com. Para criarmos um programa que armazene, pesquise, exclua e altere informaes em um banco de dados do tipo MySQL, devemos seguir os seguintes passos:

    1. Pegar a DLL de conexo do MySQL 2. Criar o banco de dados com suas tabelas no MySQL 3. Criar o programa no C#

    1 - PEGAR A DLL DE CONEXO DO MYSQL

    Para usarmos o Gerenciador de Banco de Dados MySQL, vamos precisar de uma biblioteca

    para estabelecer a comunicao. Esta biblioteca tambm disponvel no site www.mysql.com.

  • 2 Acessando BD com C#

    usando o MySQL

    Profa. Ana Paula Citro Fujarra Rodrigues

  • 3 Acessando BD com C#

    usando o MySQL

    Profa. Ana Paula Citro Fujarra Rodrigues

    Salve o arquivo nos Meus Documentos.

    Agora vamos descompactar o arquivo para usarmos o arquivo MySql.Data.dll que est dentro da pasta bin. Este o arquivo responsvel em estabelecer a comunicao entre a programao em C# com o banco de dados em MySQL. Portanto deixe este arquivo sempre dentre da pasta do projeto.

    2 - CRIAR O BANCO DE DADOS E SUAS TABELAS NO MYSQL

    Abra o prompt de Comando e digite:

  • 4 Acessando BD com C#

    usando o MySQL

    Profa. Ana Paula Citro Fujarra Rodrigues

    3 - CRIAR UM PROGRAMA NO C#

    Agora iremos criar um projeto e adicionaremos a referncia da DLL usando o arquivo MySql.Data.dll.

    Inicialize o VisualStudio 2005 e siga os passos: 1. Passo: Criar um projeto

    Clique no Menu File

    Clique no SubItem New e depois clique em Project

  • 5 Acessando BD com C#

    usando o MySQL

    Profa. Ana Paula Citro Fujarra Rodrigues

    2. Passo: Adicionar a Referncia

    Troque o nome para Cadastrar

    Escolha WINDOWSAPPLICATION

    Escolha um diretrio

    Clique OK

    Abra o Solution Explorer

    Na aba Browse localize o arquivo MySql.Data.dll

  • 6 Acessando BD com C#

    usando o MySQL

    Profa. Ana Paula Citro Fujarra Rodrigues

    3. Passo: Criar uma classe para fazer a conexo com o banco de dados (MySQL). A idia de criar uma classe para reutilizarmos o cdigo de conexo e acesso ao banco de dados e suas tabelas, isto , ao invs de copiarmos e colarmos os cdigos de FORM em FORM. Para criarmos uma classe siga os passos abaixo: 1. Passo:

    A figura abaixo o cdigo da classe criada, lembrem-se classes no possuem FORM, elas so formadas somente por cdigo.

  • 7 Acessando BD com C#

    usando o MySQL

    Profa. Ana Paula Citro Fujarra Rodrigues

    2. Passo: Fazer uso da DLL inserida nas Referencias.

    3. Passo: Criar as variveis abaixo:

    Observe que esta linha no ficou com o tipo de varivel DataTable em verde, isto significa que est faltando o uso de sua DLL

  • 8 Acessando BD com C#

    usando o MySQL

    Profa. Ana Paula Citro Fujarra Rodrigues

    Antes de arrumarmos o erro do uso da DLL, vamos entender para que serve cada varivel. A varivel conectar ir armazenar todo o caminho da conexo at o banco de dados. Imagine esta varivel como uma ponte que liga o C# ao MySQL, sem esta ponte no temos caminho para trafegar os comandos em SQL. A varivel comando_sql ir armazenar os comandos da linguagem SQL (insert, delete, select, delete), para serem executados pela varivel executar_comando. Imagine este comando como sendo o prompt de comando com o MySQL aberto. A varivel tabela_memoria ir armazenar o resultado da execuo do comando SQL. Estas 4 variveis sempre iram trabalhar em conjunto 4. Passo: Corrigir o erro da DLL do DataTable 5. Passo: Criar os campos Encapsulados das variveis. Observe que usamos antes de cada varivel a palavra . Esta palavra significa que as variveis no estaro disponveis em outro lugar, a no ser dentro deste cdigo. Ento o que iremos fazer, pois precisarei usar este cdigo em outros FORMS. A soluo criar os campos encapsulados, que iram permitir o uso destas variveis em qualquer outro FORM dentro do projeto. Estes campos encapsulados so criados automaticamente pelo Visual Studio. s seguir os passos abaixo para cada varivel.

  • 9 Acessando BD com C#

    usando o MySQL

    Profa. Ana Paula Citro Fujarra Rodrigues

  • 10 Acessando BD com C#

    usando o MySQL

    Profa. Ana Paula Citro Fujarra Rodrigues

    Selecione cada uma das outras 3 variveis e refaa os passos para ter um cdigo semelhante ao cdigo abaixo:

  • 11 Acessando BD com C#

    usando o MySQL

    Profa. Ana Paula Citro Fujarra Rodrigues

    6. Passo: Criar a ponte de conexo ao BD do Mysql Observe o final do seu cdigo para adicionar o mtodo no lugar correto.

    public String criar_Conexao() { // verificando se existe uma conexo, fecha esta conexo if (conectar != null) { conectar.Close(); } // serve para configurar os parametros do banco de dados string configuracao = string.Format("server={0};user id={1}; password={2}; database=mysql; pooling=false","", "", ""); // tenta estabelecer conectar try { conectar = new MySqlConnection(configuracao); conectar.Open(); }// caso no consiga exibe erro de conexo catch (MySqlException erro) { return ("Erro ao conectar " + erro); } // criar um banco em branco na memria MySqlDataReader banco = null; // fazer uso do banco escolhido MySqlCommand usar = new MySqlCommand("use escola", conectar); // tenta criar o banco try { banco = usar.ExecuteReader(); }// caso ocorra erro catch (MySqlException erro) { return ("Failed to populate database list: " + erro); }// no fim fecha finally { if (banco != null) { banco.Close(); } } return ("Conexo OK!!!"); }

  • 12 Acessando BD com C#

    usando o MySQL

    Profa. Ana Paula Citro Fujarra Rodrigues

    7. Passo: Criar o Mtodo acessar tabelas.

    Desa o cdigo e debaixo para cima observe novamente os trs ltimos fecha chaves (}). Entre o segundo e o terceiro o lugar correto para escrevermos este cdigo. public void carregar_tabela(String comando) { tabela_memoria = new DataTable(); comando_sql = new MySqlDataAdapter(comando, conectar); executar_comando = new MySqlCommandBuilder(comando_sql); comando_sql.Fill(tabela_memoria); } 4. Passo: Agora que terminamos nossa classe vamos construir o FORM

    5. PASSO: Vamos comear nossa programao de acesso a tabela 1. Passo: Iremos criar uma varivel global, que na verdade um objeto, cpia da classe Conexo. atravs desta varivel que iremos fazer todo o acesso as tabelas do banco de dados.

    Altere o name dos objetos para: LABEL1: lblNome e TEXTBOX1: txtNome LABEL2: lblIdade e TEXTBOX2: txtIdade LABEL3: lblTurma e TEXTBOX3: txtTurma BUTTON1: btnCadastrar DATAGRIDVIEW1: dtgrdExibir FORM1: frmTelaPrincipal

  • 13 Acessando BD com C#

    usando o MySQL

    Profa. Ana Paula Citro Fujarra Rodrigues

    2. Passo: Ativar o evento LOAD do frmTelaPrincipal (FORM)

    3. Passo: Ativar o evento CLICK do btnCadastrar private void btnCadastrar_Click(object sender, EventArgs e) { con1.carregar_tabela("insert into alunos values('" + txtNome.Text + "'," + txtIdade.Text + ",'" + txtTurma.Text + "')"); con1.carregar_tabela("select * from alunos"); dtgrdExibir.DataSource = con1.Tabela_memoria; }

  • 14 Acessando BD com C#

    usando o MySQL

    Profa. Ana Paula Citro Fujarra Rodrigues

    Cadastrando Dados

    Reviso

    Como foi visto na aula anterior para cadastrar dados em tabelas no MySql preciso saber

    o comando em SQL (INSERT) e escrever o comando, lembrando que:

    Os campos VARCHAR precisam de aspas simples () e os campos INT no precisam destas aspas simples, conforme o exemplo:

    create table alunos ( nome varchar(40), idade int );

    insert into alunos values (+txtNome.Text+,+txtIdade.Text+)

    Tambm vimos que para cadastrar campos AUTOINCREMENTO necessrio usar as

    aspas simples com nenhum valor dentro, isto , vazia, conforme o exemplo abaixo:

    create table alunos ( cod_aluno int auto_increment, nome varchar(40), idade int, primary key(cod_aluno) );

    insert into alunos values (,+txtNome.Text+,+txtIdade.Text+)

  • 15 Acessando BD com C#

    usando o MySQL

    Profa. Ana Paula Citro Fujarra Rodrigues

    Cadastrar Campos FLOAT ou DECIMAL

    Para cadastrar campos com casas decimais teremos um problema. Os valores com casas

    decimais so separados por vrgula (,) para os softwares padro Windows e para o MySQL as

    casas decimais devem ser separadas por ponto (.). Ento teremos que usar um comando especfico para fazer esta converso em cada campo

    que houver a necessidade.

    Este comando o Replace(valor original,valor para substituio) e pode ser usado em campo valor String, conforme o exemplo abaixo:

    create table funcionario ( cod_func int auto_increment, nome varchar(40), salario float, primary key(cod_func) );

    insert into funcionario values (,+txtNome.Text+,+txtSalario.Text.Replace(,,.)+)

  • 16 Acessando BD com C#

    usando o MySQL

    Profa. Ana Paula Citro Fujarra Rodrigu