Verificar se qualquer linha de uma coluna do grid está vazia
Como fica um if para Verificar se qualquer linha de uma coluna do grid está vazia(Teremos várias linhas desta coluna com valores, mas uma ou mais vazias), algo tipo assim :
if (DataGridView.Columns["Perfil"].Text == "")
Jair Souza
Curtidas 0
Respostas
Joel Rodrigues
07/11/2014
Você vai precisar fazer um loop sobre todas as linhas e verificar uma por uma.
GOSTEI 0
Jair Souza
07/11/2014
Podes dar um exemplo ?
A coluna em questão do grid, é carregada com INNER JOIN, originalmente é numérica(ID), mas com o INNER traz alfanumérica(Descrição).
A coluna em questão do grid, é carregada com INNER JOIN, originalmente é numérica(ID), mas com o INNER traz alfanumérica(Descrição).
GOSTEI 0
Soeuseijothaz
07/11/2014
Podia ser mais claro?
O gird é montado com linha vazias?
Ou vc quer impedir que o grid seja montado com linha vazias?
O gird é montado com linha vazias?
Ou vc quer impedir que o grid seja montado com linha vazias?
GOSTEI 0
Jair Souza
07/11/2014
O grid é carregado assim :
O problema é que ao inserir um cadastro novo se não preencher o campo “Perfil”, salva no BD, mas não atualiza o form.
Estou entendendo que é em função deste INNER, mas o INNER é fundamental para não mostrar o ID do perfil, mas a Descrição.
Não estou encontrando solução...
SELECT F.IDFuncionario, F.Nome, F.Login, F.Senha, F.Perfil, P.Descricao, F.Situacao, F.[E-mail], F.[Data de Cadastro], F.[Cadastrado Por], F.[Data de Alteracao], F.[Alterado por], F.Foto, F.Obs, F.Obs2 FROM (Funcionario F INNER JOIN Perfil P ON F.Perfil = P.IDPerfil)
O problema é que ao inserir um cadastro novo se não preencher o campo “Perfil”, salva no BD, mas não atualiza o form.
Estou entendendo que é em função deste INNER, mas o INNER é fundamental para não mostrar o ID do perfil, mas a Descrição.
Não estou encontrando solução...
GOSTEI 0
Soeuseijothaz
07/11/2014
O SQL que você postou esta sendo carregado em um datatable ou dataset?
Favor postar um print da tela para facilitar a compreensão do problema.
Favor postar um print da tela para facilitar a compreensão do problema.
GOSTEI 0
Jair Souza
07/11/2014
É carregado desta forma :
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20141110-105756.png[/img]
this.perfilTableAdapter.Fill(this.bDBibliotecaDataSet.Perfil); this.funcionarioTableAdapter.FillByDescrPerfil(this.bDBibliotecaDataSet.Funcionario);
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20141110-105756.png[/img]
GOSTEI 0
Soeuseijothaz
07/11/2014
A inclusão é feita no próprio grid ou você joga os dados para um form para edição?
Se possível poste o código de como é feita a gravação no bd.
Se possível poste o código de como é feita a gravação no bd.
GOSTEI 0
Jair Souza
07/11/2014
O form tem um tabcontrol, com duas abas "Cadastro" e "Consulta".
BD Access.
BD Access.
private void BtnSalvar_Click(object sender, EventArgs e) { this.Validate(); this.funcionarioBindingSource.EndEdit(); this.tableAdapterManager.UpdateAll(this.bDBibliotecaDataSet); MessageBox.Show("Registro Salvo com Sucesso !", "Salvar", MessageBoxButtons.OK, MessageBoxIcon.Information); this.funcionarioTableAdapter.FillByDescrPerfil(this.bDBibliotecaDataSet.Funcionario); this.funcionarioBindingSource.MoveLast();
GOSTEI 0
Soeuseijothaz
07/11/2014
Na tab de cadastro existe um combo para escolher o perfil?
Se existir tenta retornar P.IDPerfil no SQL.
Se existir tenta retornar P.IDPerfil no SQL.
GOSTEI 0
Jair Souza
07/11/2014
Sim é um combobox, mas que não mostra o id e sim a descrição, e é este combo que não pode ficar vazio...que depois de salvar, salva no BD, mas não atualiza o form.
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20141110-142247.png[/img]
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20141110-142247.png[/img]
GOSTEI 0
Soeuseijothaz
07/11/2014
O combo é alimentado por uma tabela do bd?
Ou e fixo no html?
Ou e fixo no html?
GOSTEI 0
Jair Souza
07/11/2014
Sim, no BD tem a tabela "Funcionário" e a tabela "Perfil" .
GOSTEI 0
Soeuseijothaz
07/11/2014
Normalmente para carregar o combo usa-se:
Então apesar de aparecer o "Nome" no texto no o "Id" e carregado no valor.
Então tenta devolver o P.IDPerfil além de P.Descricao no sql que monta o grid e teste.
ddlCidade.DataValueField = "IdCidade"; ddlCidade.DataTextField = "NmCidade"; ddlCidade.DataBind();
Então apesar de aparecer o "Nome" no texto no o "Id" e carregado no valor.
Então tenta devolver o P.IDPerfil além de P.Descricao no sql que monta o grid e teste.
GOSTEI 0
Jair Souza
07/11/2014
Para carregar o combo uso o dataBound deste combo :
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20141110-170540.png[/img]
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20141110-170540.png[/img]
GOSTEI 0
Soeuseijothaz
07/11/2014
Então tenta devolver o P.IDPerfil além de P.Descricao no SQLque monta o grid.
E veja se ele carrega do dataset.
Normalmente eu faço tudo na mão via code-behind.
E veja se ele carrega do dataset.
Normalmente eu faço tudo na mão via code-behind.
GOSTEI 0
Jair Souza
07/11/2014
Não estou na minha máquina agora, assim que der vou testar.
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20141111-081935.png[/img]
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20141111-081935.png[/img]
GOSTEI 0
Soeuseijothaz
07/11/2014
Camarada se não funcionar retornando o P.IDPerfil então faça o test retornando o F.IDPerfil, acredito que pois é neste campo que você quer gravar né?
No grid para evitar aparecer o ID basta ocultar a coluna.
E desculpe-me por não poder ajudar mais, como havia dito normalmente faço tudo via código ou mesmo usando entyti/linq cin list.
No grid para evitar aparecer o ID basta ocultar a coluna.
E desculpe-me por não poder ajudar mais, como havia dito normalmente faço tudo via código ou mesmo usando entyti/linq cin list.
GOSTEI 0
Jair Souza
07/11/2014
Valeu, pela sua ajuda, vou desistir nada funcionou.
GOSTEI 0
Soeuseijothaz
07/11/2014
Cara tem como me passar o projeto?
Assim mais simples ajudá-lo, sem ver a codificação fica difícil.
Não garanto que vou conseguir resolver o problema, mas pelo menos posso tentar.
Assim mais simples ajudá-lo, sem ver a codificação fica difícil.
Não garanto que vou conseguir resolver o problema, mas pelo menos posso tentar.
GOSTEI 0