none
Retornando Valores do data Grid View RRS feed

  • Pergunta

  • Boa noite , 

    Estou com um problema bizarro, eu tenho uma tabela no banco de dados Sql Server, onde tem um campo bit, eu estou puxando dados dessa tabela, que na verdade é uma View... Eu faço a minha instrução Select, e executo pelo SqlDataReader (dr = cmd.ExecuteReader()), quando o valor Ativo é false (vindo do c# = 0) ele retorna os valores, mas quando vem true do c#, ele da erro (A cadeia de caracteres de entrada não estava em um formato correto).... Eu usei essa mesma lógica em outra tela e funciona.... segue o código das telas que não funciona:

    OBJETO TRANSFERENCIA

    public class Funcionario : Pessoa
        {
            public int id_Func { get; set; }
            public string funcao { get; set; }
            public int id_Gerente { get; set; }
            public bool ativo { get; set; }
            public int id_Loja { get; set; }
        }

    public class Pessoa
        {
            public int id_Pessoa { get; set; }
            public string cpf { get; set; }
            public string nome { get; set; }
            public string sexo { get; set; }

        }

    ==========================

    NEGOCIO

    public List<Funcionario> SelecionarFuncionarioPorNome (string nome, bool ativo, int idLoja)
            {
                _SQL = @"select 
                        Id_Func,NomeFuncionario,Funcao,Cpf,Sexo,id_Gerente,Ativo,idLoja
                        from VW_FUNCIONARIO_COMPLETO
                        where NomeFuncionario like '%' + @nomefunc + '%' and Ativo = @ativo and idLoja = @idLoja";

                //
                cmd = new SqlCommand();
                cmd.Connection = ConexaoBancoSQLServer.Conectar();

                cmd.Parameters.AddWithValue("@nomefunc", nome);
                cmd.Parameters.AddWithValue("@ativo", ativo);
                cmd.Parameters.AddWithValue("@idLoja", idLoja);
                /*
                cmd.Parameters.Add("@nomefunc", SqlDbType.VarChar, 60).Value = nome;
                cmd.Parameters.Add("@ativo", SqlDbType.Bit, 1).Value = ativo;
                cmd.Parameters.Add("@idLoja", SqlDbType.Int).Value = idLoja;
                */
                cmd.CommandText = _SQL;

                dr = cmd.ExecuteReader();


                List<Funcionario> ListaFuncionarios = new List<Funcionario>();

                while (dr.Read())
                {
                    Funcionario func = new Funcionario();

                    func.id_Func = int.Parse(dr["Id_Func"].ToString());
                    func.nome = dr["NomeFuncionario"].ToString();
                    func.funcao = dr["Funcao"].ToString();
                    func.cpf = dr["Cpf"].ToString();
                    func.sexo = dr["Sexo"].ToString();
                    func.id_Gerente = int.Parse(dr["id_Gerente"].ToString());
                    func.ativo = Convert.ToBoolean(dr["Ativo"].ToString());
                    func.id_Loja = int.Parse(dr["idLoja"].ToString());

                    ListaFuncionarios.Add(func);
                }

                return ListaFuncionarios;
            }

    =====================================

    TELA 

    private void btnPesquisar_Click(object sender, EventArgs e)
            {
                try
                {
                    bool AtivoDesativo = false;

                    if (!rdbDesativado.Checked)
                        AtivoDesativo = true;

                     if (cmbLoja.Text == "")
                         MessageBox.Show("Escolha uma loja");
                    else
                         AtualizarGrid(txtNome.Text, AtivoDesativo, Convert.ToInt32(cmbLoja.SelectedValue));

                }
                catch (Exception ex)
                {

                    MessageBox.Show("Erro: " + ex.Message);
                }


            }

                                                    

    public void AtualizarGrid(string nome, bool ativo, int idLoja)
            {

                List<Funcionario> listaFuncionario = new List<Funcionario>();
                funcionarioNegocio = new FuncionarioNegocio();

                listaFuncionario = funcionarioNegocio.SelecionarFuncionarioPorNome(nome, ativo, idLoja);

                dgvPrincipal.DataSource = null;
                dgvPrincipal.DataSource = listaFuncionario;

                dgvPrincipal.Update();
                dgvPrincipal.Refresh();

            }

    desde já agradeço a atenção :-)

    quinta-feira, 27 de julho de 2017 00:22

Respostas

Todas as Respostas

  • Luciano

    Segue alguns artigos para te ajudar.

    https://ecode10.com/Pesquisar?q=gridview


    Espero ter ajudado. Se ajudei, favor marcar no fórum falando que foi útil.

    Mauricio Junior - Comunidade www.ecode10.com

    quinta-feira, 27 de julho de 2017 11:10
  • Bom dia,

    Por falta de retorno, essa thread está sendo encerrada.

    Se necessário, favor abrir uma nova thread.

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 31 de julho de 2017 13:57
    Moderador