Verificar se qualquer linha de uma coluna do grid está vazia

.NET

07/11/2014

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

Jair Souza

Curtidas 0

Respostas

Joel Rodrigues

Joel Rodrigues

07/11/2014

Você vai precisar fazer um loop sobre todas as linhas e verificar uma por uma.
GOSTEI 0
Jair Souza

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).
GOSTEI 0
Soeuseijothaz

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?
GOSTEI 0
Jair Souza

Jair Souza

07/11/2014

O grid é carregado assim :

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

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.
GOSTEI 0
Jair Souza

Jair Souza

07/11/2014

É carregado desta forma :

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

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.
GOSTEI 0
Jair Souza

Jair Souza

07/11/2014

O form tem um tabcontrol, com duas abas "Cadastro" e "Consulta".
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

Soeuseijothaz

07/11/2014

Na tab de cadastro existe um combo para escolher o perfil?

Se existir tenta retornar P.IDPerfil no SQL.
GOSTEI 0
Jair Souza

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]
GOSTEI 0
Soeuseijothaz

Soeuseijothaz

07/11/2014

O combo é alimentado por uma tabela do bd?

Ou e fixo no html?
GOSTEI 0
Jair Souza

Jair Souza

07/11/2014

Sim, no BD tem a tabela "Funcionário" e a tabela "Perfil" .
GOSTEI 0
Soeuseijothaz

Soeuseijothaz

07/11/2014

Normalmente para carregar o combo usa-se:
                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

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]
GOSTEI 0
Soeuseijothaz

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.
GOSTEI 0
Jair Souza

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]
GOSTEI 0
Soeuseijothaz

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.
GOSTEI 0
Jair Souza

Jair Souza

07/11/2014

Valeu, pela sua ajuda, vou desistir nada funcionou.
GOSTEI 0
Soeuseijothaz

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.
GOSTEI 0
POSTAR