none
Pesquisando o SQL Server para verificar um Registro RRS feed

  • Pergunta

  • Boa noite.

    Como faço para saber se um CNPJ está cadastrado na Tabela de Clientes?

    Obs: O campo CNPJ não é Primary Key.

    Já tenho uma query que verifica se o CNPJ está na tabela. o resultado estou alimentando uma DataGridView.

    Quando tem alguma informação no DataGridView, não posso incluir novamente o cliente.

    Quando o DataGridView estiver vazio, aí sim, posso incluir o cliente.

    Não estou sabendo como fazer esse tratamento para que eu possa receber uma afirmação ou uma negação:

    peço ajuda.

    sábado, 28 de julho de 2012 02:39

Todas as Respostas

  • Bom dia Gari!

    Segue um simples exemplo de como pode ser feito o que deseja:

    code:

     //click do botão pesquisar
            private void btnPesquisar_Click(object sender, EventArgs e)
            {
                //chama o método passando o masked como parâmetro
                //e já verificando seu retorno booleano
                if (PesquisaCnpj(mskCnpj.Text))
                    //Exibe a mensagem caso true
                    MessageBox.Show(@"O Cnpj existe!");
                else
                    //Exibe a mensagem caso false
                    MessageBox.Show(@"O Cnpj NÃO existe!");
            }
    
            //Método privado que retorna um valor booleano
            //e recebe um parâmetro do tipo string, ou seja
            //será o Cnpj a ser consultado
            private bool PesquisaCnpj(string cnpj)
            {
                //instância da conexão que recebe a connectionstring
                var conexao = new SqlConnection(@"Data Source=.\sqlexpress;Initial Catalog=Exemplo;Integrated Security=True");
                //string com o comando parametrizado
                var sql = "SELECT Cnpj FROM Cliente WHERE Cnpj = @Cnpj";
                //instância do comando Sql que recebe a conexão
                //e a string com o comando
                var cmd = new SqlCommand(sql, conexao);
                //Adiciono o parâmetro ao comando sql
                cmd.Parameters.AddWithValue("@Cnpj", cnpj);
                //Abro conexão
                conexao.Open();
                //o leitor recebe o comando Execute Scalar que me retorna a primeira 
                //ocorrência da query e descarta as demais 
                var leitor = cmd.ExecuteScalar();
                //fecho conexão
                conexao.Close();
                //E retorno se o leitor é diferente de null
                //pois assim sei se a query retornou algum valor ou não
                return leitor != null;
            }

    Tela:

    E aqui um exemplo para download utilizando o SQlCE!

    Download do Exemplo!

    Abraços e espero ter ajudado!


     "Feliz aquele que transfere o saber e aprende o que ensina."(Cora Coralina)


    Pablo Batista Cardoso
    www.pablobatistacardoso.com.br
    pablobatistacardoso@hotmail.com

    • Sugerido como Resposta Levi Domingos sábado, 28 de julho de 2012 12:15
    sábado, 28 de julho de 2012 12:02
  • Qual o banco que você esta usando?

    Idependente disso, a base é essa:

    -Abre conexão. 

    -Define comando.

    -Atribui conexão ao comando.

    -Cria objeto que processa a busca no banco.

    - Joga pra memória.

    - Caso exista valor faça X caso contrario Y.

    Acredito que sua duvida pode estar referente a como passar os parametros dentro da query.

    Segue exemplo sem previnir sql injection em banco Oracle:

    OracleConnection conn = new Oracle Connection (string connectionString);

    OracleCommand cmd = new Oracle Command();

    cmd.CommandText = "Select * from Clientes where cnpj_cliente = "+cnpjTextBox.Text;

    cmd.Connection = conn;

    OracleDataAdapter da = new OracleDataAdapter();

    da.SelectedCommand = cmd;

    DataTable dt = new DataTable();

    da.Fill(dt);

    if(dt.Rows.Count > 0)

    {

            Faça x;

    }

    else

    {

           Faça Y;

    }

    Segue a dica !

    quinta-feira, 2 de agosto de 2012 14:08
  • Segue exemplo previnindo SQL injection :
    OracleCommand cmd = new OracleCommand();
    cmd.CommandText = " Select * from Clientes where CNPJCliente = ':cnpj'";
    cmd.Parameters.Add( new OracleParameter(":cnpj", cnpjTextBox.Text));
    cmd.Connection = conn;
    OracleDataAdapter da = new OracleDataAdapter();
    da.SelectCommand = cmd;
    DataTable dt = new DataTable();
    da.Fill(dt);
    if()
    {
      Faça X;
    }
    else
    {
       Faça Y;
    }

    quinta-feira, 2 de agosto de 2012 14:14