Pesquisar dados na tabela de um banco e retornar resultado para um label ou liberação de botão, com Linq - C sharp

26/06/2013

0

Prezados,

sou iniciante e preciso, a titulo de aprendizado, pesquisar(sem ter a chave primaria) se existe a informação em uma tabela do banco.

A ação consiste em verificar se o formulario já foi lançado no sistema e se não foi, liberar um botão para fazer o lançamento.
O lançamento do formulario é diario, então na tabela existem varios lançamentos do mesmo codigo(formulario) porem com datas diferentes, entao buscando o codigo e a data, ao encontrar, o botao permanece bloqueado e o grid com os dados do formulario é carregado, não encontrando o botão é liberado para o lançamento do formulario.


A aplicação é em 3 camadas - Apresentacao, Negocios e Dados

Eu consigo apenas trazer os dados para um grid, porem nao consigo utilizar a checagem para liberar o botão.

desde já agradeço,
Otalicio Junior/

Otalicio Junior/

Responder

Posts

26/06/2013

Joel Rodrigues

Como você traz o resultado para o Grid?
Se for uma lista, é só verificar o count. Se for um DataReader, é só verificar se tem linhas no resultado.
Responder

26/06/2013

Otalicio Junior/

Joel,

Na camada de apresentação
        protected void btnListar_Click1(object sender, EventArgs e)
        {
            string plano = txtPlano.Text;
            string data = txtData.Text;

            this.RGridPessoal.DataSource = Negocios.GrPessoalNeg.SearchPlano(plano, data);
            this.RGridPessoal.DataBind();
        }


Na camada de negócios
        public static IEnumerable SearchPlano(string plano, string data)
        {
            return Dados.GrPessoalDad.SearchPlano(plano,data);
        }


Na camada de dados

 public static IEnumerable SearchPlano(string plano, string data)
        {
            WebDataDataContext dataClass = new WebDataDataContext();

            var dia = data;

            var pess = from v in dataClass.PESSOALs
                       join m in dataClass.CARGOs on v.Codcargo equals m.Cargo1
                       join an in dataClass.SITIOs on v.Codlocal equals an.Codlocal
                       join p in dataClass.PRODUCAOs on v.Chapa equals p.Chapa
                       where v.Codsubord == plano && Convert.ToDateTime(dia) == Convert.ToDateTime(p.Data)
                       select new
                       {
                           v.Chapa,
                           v.Nome,
                           m.Desccargo,
                           an.Desclocal,
                           p.Data,
                           p.Situacao,
                           p.Turno,
                           p.ID
                        
                       };

            IEnumerable pessoal = pess.AsEnumerable();

            return pessoal;
        }
Responder

26/06/2013

Joel Rodrigues

Como você está retornando uma coleção, basta verificar se já itens nesse resultado. Se tiver, não habilita o botão.
Responder

26/06/2013

Otalicio Junior/

Este é o meu problema, não sei como verificar se tem items na coleção para utilizar o IF.
Responder

26/06/2013

Joel Rodrigues

Experimente usar:
Negocios.GrPessoalNeg.SearchPlano(plano, data).ToList().Count
Responder

27/06/2013

Otalicio Junior/

Obrigado pela ajuda!

Muito Obrigado pela dica,consegui o que pretendia, ficou assim:

Camada de dados
public static List<LANCADA> Pesqlan(string subdata)
        {
            WebDataDataContext dataClass = new WebDataDataContext();

            var lanc = from c in dataClass.LANCADAs
                       where c.SuborDta == subdata
                       select c;

            List<LANCADA> lancadas = lanc.ToList();

            return lancadas;
        }


Camada de Negócios

        public static List<LANCADA> PesqLan(string subdata)
        {
            return Dados.GrPessoalDad.Pesqlan(subdata);
        }


Camada de Apresentação


protected void Button1_Click(object sender, EventArgs e)
        {
            string subdata = txtPlano.Text + txtData.Text;

            this.txtTeste.Text = Convert.ToString((Negocios.GrPessoalNeg.PesqLan(subdata)).Count);  
        }

Responder

27/06/2013

Joel Rodrigues

Muito bom, utilizou a classe List, bacana.
Então vou marcar o tópico como Concluído.
Abraço.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar