Array
(
)

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

Jair Souza
   - 07 nov 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 :
#Código

if (DataGridView.Columns["Perfil"].Text == "")

Joel Rodrigues
   - 07 nov 2014

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

Jair Souza
   - 07 nov 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).

Jothaz
   - 09 nov 2014

Podia ser mais claro?

O gird é montado com linha vazias?

Ou vc quer impedir que o grid seja montado com linha vazias?

Jair Souza
   - 10 nov 2014

O grid é carregado assim :

#Código

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...

Jothaz
   - 10 nov 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.

Jair Souza
   - 10 nov 2014

É carregado desta forma :

#Código

this.perfilTableAdapter.Fill(this.bDBibliotecaDataSet.Perfil);
this.funcionarioTableAdapter.FillByDescrPerfil(this.bDBibliotecaDataSet.Funcionario);


Clique na imagem para abrir em uma nova janela

Jothaz
   - 10 nov 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.

Jair Souza
   - 10 nov 2014

O form tem um tabcontrol, com duas abas "Cadastro" e "Consulta".
BD Access.

#Código

      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();

Jothaz
   - 10 nov 2014

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

Se existir tenta retornar P.IDPerfil no SQL.

Jair Souza
   - 10 nov 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.

Clique na imagem para abrir em uma nova janela

Jothaz
   - 10 nov 2014

O combo é alimentado por uma tabela do bd?

Ou e fixo no html?

Jair Souza
   - 10 nov 2014

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

Jothaz
   - 10 nov 2014

Normalmente para carregar o combo usa-se:
#Código

                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.

Jair Souza
   - 10 nov 2014

Para carregar o combo uso o dataBound deste combo :

Clique na imagem para abrir em uma nova janela

Jothaz
   - 10 nov 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.

Jair Souza
   - 11 nov 2014

Não estou na minha máquina agora, assim que der vou testar.

Clique na imagem para abrir em uma nova janela

Jothaz
   - 11 nov 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.

Jair Souza
   - 12 nov 2014

Valeu, pela sua ajuda, vou desistir nada funcionou.

Jothaz
   - 12 nov 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.