Pesquisar dados na tabela de um banco e retornar resultado para um label ou liberação de botão, com Linq - C sharp
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,
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/
Curtidas 0
Respostas
Joel Rodrigues
26/06/2013
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.
Se for uma lista, é só verificar o count. Se for um DataReader, é só verificar se tem linhas no resultado.
GOSTEI 0
Otalicio Junior/
26/06/2013
Joel,
Na camada de apresentação
Na camada de negócios
Na camada de dados
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;
}
GOSTEI 0
Joel Rodrigues
26/06/2013
Como você está retornando uma coleção, basta verificar se já itens nesse resultado. Se tiver, não habilita o botão.
GOSTEI 0
Otalicio Junior/
26/06/2013
Este é o meu problema, não sei como verificar se tem items na coleção para utilizar o IF.
GOSTEI 0
Joel Rodrigues
26/06/2013
Experimente usar:
Negocios.GrPessoalNeg.SearchPlano(plano, data).ToList().Count
GOSTEI 0
Otalicio Junior/
26/06/2013
Obrigado pela ajuda!
Muito Obrigado pela dica,consegui o que pretendia, ficou assim:
Camada de dados
Camada de Negócios
Camada de Apresentação
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);
}
GOSTEI 0
Joel Rodrigues
26/06/2013
Muito bom, utilizou a classe List, bacana.
Então vou marcar o tópico como Concluído.
Abraço.
Então vou marcar o tópico como Concluído.
Abraço.
GOSTEI 0