Mostrando postagens com marcador Comandos SQL. Mostrar todas as postagens
Mostrando postagens com marcador Comandos SQL. Mostrar todas as postagens

quinta-feira, 5 de agosto de 2010

Criando uma classe de conexão para suas aplicações Windows Forms e SQL Server

Nesta dica vou mostrar como criar uma classe de conexão que pode ser reaproveitada em suas aplicações Windows Forms, C# e SQL Server. A vantagem de se usar uma classe de conexão e concentrar a string de conexão, os métodos de abertura e fechamento da conexão em uma só classe possibilita modificações rápidas e de pouco impacto no restante do código da aplicação.

Para criar a classe de conexão siga atentamente os passos abaixo:

a) Clique com o botão direito no nome do projeto no Solution Explorer, escolha a opção Add -> Class;

b) Dê o nome "Conexao" para a classe e modifique-a para ficar parecida com o código abaixo:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;

namespace NamespaceDeSuaAplicacao{
  class Conexao{
    // vamos nos conectar ao SQL Server Express e à base de dados
    // locadora usando Windows Authentication
    private static string connString = @"server = .\sqlexpress;
    Database = locadora;
    integrated security = true;";

    // representa a conexão com o banco
    private static SqlConnection conn = null;   

    // método que permite obter a conexão
    public static SqlConnection obterConexao(){
      // vamos criar a conexão
      conn = new SqlConnection(connString);

      // a conexão foi feita com sucesso?
      try{
        // abre a conexão e a devolve ao chamador do método
        conn.Open();
      }
      catch(SqlException sqle){
        conn = null;
        // ops! o que aconteceu?
        // uma boa idéia aqui é gravar a exceção em um arquivo de log
      }

      return conn;
    }

    public static void fecharConexao(){
      if(conn != null){
        conn.Close();
      }
    }
  }
}

Note que os métodos desta classe são estáticos, o que nos permite chamá-los a partir de outras classe sem a necessidade de criarmos novos objetos da classe Conexao. Veja, por exemplo, como usar os métodos obterConexao() e fecharConexao() de nossa recém-criada classe a partir do evento Click de um botão (este botão poderia estar localizado em um formulário de cadastro):

private void button1_Click(object sender, EventArgs e){
  // vamos obter a conexão com o banco de dados
  SqlConnection conn = Conexao.obterConexao();

  // a conexão foi efetuada com sucesso?
  if(conn == null){
    MessageBox.Show("Não foi possível obter a conexão. Veja o log de erros.");   
  }
  else{
    MessageBox.Show("A conexão foi obtida com sucesso.");
  }

  // não precisamos mais da conexão? vamos fechá-la
  Conexao.fecharConexao();
}
by:splinter

Como se conectar ao SQL Server usando Windows Forms e C#

Nesta dica eu mostro como efetuar uma conexão ao banco de dados SQL Server. Aqui estou usando o SQL Server Express 2005, mas penso que a conexão deve funcionar na versão full do SQL Server com poucas alterações.

No primeiro código nós efetuamos uma conexão ao SQL Server Express usando a autenticação do Windows (Windows Authentication). Note que se a conexão for efetuada com sucesso nós teremos um objeto da classe SqlConnection para começar a enviar queries ao banco:


private void button1_Click(object sender, EventArgs e){
  // string de conexão
  string connString = @"server = .\sqlexpress;
    integrated security = true;";

  // vamos criar a conexão
  SqlConnection conn = new SqlConnection(connString);

  // a conexão foi feita com sucesso?
  try{
    // abre a conexão
    conn.Open();
    MessageBox.Show("A conexão foi efetuada com sucesso.");
  }
  catch(SqlException sqle){
    // ops! o que aconteceu?
    MessageBox.Show("Falha ao efetuar a conexão. Erro: " + sqle);
  }
}

Aqui nós obtemos a conexão com o banco de dados, mas, e a base de dados? Como nosso código saberá para qual base de dados os comandos SQL (queries) serão direcionados? A resposta é que podemos definir o nome da base de dados na string de conexão. Veja:

private void button1_Click(object sender, EventArgs e){
  // string de conexão
  string connString = @"server = .\sqlexpress;
    Database = locadora;
    integrated security = true;";

  // vamos criar a conexão
  SqlConnection conn = new SqlConnection(connString);

  // a conexão foi feita com sucesso?
  try{
    // abre a conexão
    conn.Open();
    MessageBox.Show("A conexão foi efetuada com sucesso.");
  }
  catch(SqlException sqle){
    // ops! o que aconteceu?
    MessageBox.Show("Falha ao efetuar a conexão. Erro: " + sqle);
  }
}

Neste trecho de códigos nós estamos nos conectando a uma base de dados chamada locadora. Veja que abrimos uma conexão com o banco de dados (e a base de dados desejada) usando o método Open() da classe SqlConnection. Quando não mais precisarmos da conexão nós devemos fechá-la usando o método Close().
by:splinter

Comandos e tipo em SQL

INSERT INTO = Insere na tabela desejada
SELECT * FROM = Seleciona todos os campos da tabela
UPDADE = Atualiza a tabela
DELE FROM= Deleta a tabela
INNER JOIN = Faz a junção de 2 tabelas Ex:
                     SELECT  tbAluno.NomeAluno, tbNota.Nota1 FROM tbAluno INNER JOIN tbNota ON 
                                             tbAluno.id_Aluno = tbNota.id_Aluno; 
WHERE = (Onde) você faz a comparação 
FROM = da tabela


INT = Tipo Inteiro
VARCHAR = tipo texto maior
CHAR = tipo texto menor
OUTPUT = de saida.


by:Lucas Augusto

Inserção e Alteração na mesma Stored

Cria a stored.
Depois Crie seu codigo como de exemplo:
Observem que em stored procedure podemos usar if e else.
Nessa stored ele possui um campo tipo que mandar o char para a sotred saber o que vai fazer.
No caso se for enviado 1 no tipo ele faz a inserção. Se for 0 ele faz apenas a atualização do cadastro.

Obrigado t+

by:Lucas Augusto

Inserção Simples SQL

Crie sua Stored Procedure, como visto em outro exemplo anteriormente.
Depois Crie seus parametros e seu comando:
Exemplo:


Insert Into: Insira na tabela, ai você poe o nome da sua tabela e entre () os campos em sequencia.
ex: Insert Into tbAluno (nome) values (@nome)
Values: Valores de seus paramentros na ordem que esta os campos da tabela.
Set: Vai seta o Id do Aluno que é a referencia para o id auto incremento da tabela. O id Auto incremento tem que ser OUTPUT.

Esse foi um insere simples.
Proxima sere Insere e Altera na mesma Stored.

T+


By:Lucas Augusto

Criando uma StoredProcedure

Primeiramente abra o seu sql server ou sql do visual studio.
Clique com o direito em cima de StoredProcedures e escolha Criar nova Stored.

Ira aparecer uma tela parecida com essa:

Em Author coloque seu nome , data etc.
Na linha Create Procedure  troque ProcedureName pelo nome da sua stored.
Em baixo em parametros loque seus parametro assim:
@id int,
@nome varchar(40)
o ultimo parametro é sem virgula.

Depois dentro de begin e end crie seu comando sql.
Vou mostra mais pra frente alguns exemplos de comandos sql.

Vlw t+


By:Lucas Augusto