Mostrar a descrição do perfil na coluna do GridView e não o codigo do perfil
Esta informação vem da tabela “Perfil” no Banco de Dados que cadastro por outro windowsform “Cadastro dePerfil”, como fazer isto sem ser com combobox ?
Abaixo a imagem para facilitar o entendimento.
[url]http://uploaddeimagens.com.br/imagens/coluna_perfil_usuario-png[/url]
Jair Souza
Respostas
Joel Rodrigues
16/09/2013
SELECT U.NOME, U.LOGIN, P.DESCRICAO FROM USUARIOS U INNER JOIN PERFIL P ON U.COD_PERFIL = P.CODIGO
Jair Souza
16/09/2013
Joel Rodrigues
16/09/2013
E sobre onde colocar o select, é no mesmo canto onde está hoje a sua instrução de select que traz o código do perfil.
Se tiver dificuldade, descreva o processo que está usando para exibir os dados no grid.
Jair Souza
16/09/2013
[url]http://uploaddeimagens.com.br/imagens/bd-png--3[/url]
Jair Souza
16/09/2013
[url]http://uploaddeimagens.com.br/imagens/query_select-png[/url]
Joel Rodrigues
16/09/2013
SELECT F.IDFuncionario, F.Nome, F.Login, F.Senha, P.Nome, F.Situacao, FROM Funcionario F INNER JOIN Perfil P ON F.Perfil = P.IDPerfil WHERE (F.Nome LIKE '%' + ? + '%')
Jair Souza
16/09/2013
Pois a que mostrei na imagem é uma Query que depois de criada é chamada no código por FillBy...
To enrolado, não é fácil ser iniciante...
Joel Rodrigues
16/09/2013
Mas desde já, indico que estude INNER JOIN para entender o que está sendo feito.
Jair Souza
16/09/2013
[url]http://uploaddeimagens.com.br/imagens/coluna_perfil_usuario-png[/url]
Joel Rodrigues
16/09/2013
O que muda agora é somente o select que você vai usar. Você vai apenas repetir o processo que já usa para exibir os dados nesse grid.
Jair Souza
16/09/2013
*Na Query, parece estar certo pois já mostra o nome e não mais o id do perfil :
[url]http://uploaddeimagens.com.br/imagens/imagem_query-png[/url]
*Mas ao abrir o form e ir até a page2 que é onde está o grid mostra o id...
[url]http://uploaddeimagens.com.br/imagens/grid-png[/url]
*E ao digitar no textbox para pesquisar fica tudo em branco na coluna perfil...
[url]http://uploaddeimagens.com.br/imagens/textbox_de_pesquisa-png[/url]
...e agora parece faltar pouco...mas não sei o que.
Jair Souza
16/09/2013
*E ao digitar no textbox para pesquisar fica tudo em branco na coluna perfil...para esta pesquisa funcionar pelo textbox no evento textboxTextChanged é chamado a query This.....FillByNome..., que é a mesma query que já tínhamos e que alteramos.
Abaixo as imagens dos dois forms, cadastro de funcionarios e cadastro de perfil.
[url]http://uploaddeimagens.com.br/imagens/forms-png--2[/url]
Aguardo ajuda e já agradeço pela paciência.
Joel Rodrigues
16/09/2013
Jair Souza
16/09/2013
Jair Souza
16/09/2013
*Não esqueça sou Iniciante com I maiúsculo.
Jair Souza
16/09/2013
*Não esqueça sou Iniciante com I maiúsculo.
Joel Rodrigues
16/09/2013
Selecione a coluna onde está o Id e na propriedade DataPropertyNAme, selecione essa nova coluna.
Jair Souza
16/09/2013
Olhei todas opções nas propriedades, as Collumns e nada de Luz....veja as imagens abaixo :
[url]http://uploaddeimagens.com.br/imagens/datapropertyname-png[/url]
[url]http://uploaddeimagens.com.br/imagens/novo_select-png[/url]
Agradeço pela paciência.
Jair Souza
16/09/2013
[url]http://uploaddeimagens.com.br/imagens/erro_ao_salvar-png[/url]
...já ia esquecendo tambem está aparecendo esta mensagem :
[url]http://uploaddeimagens.com.br/imagens/mensagem_warning-png[/url]
Joel Rodrigues
16/09/2013
Jair Souza
16/09/2013
[url]http://uploaddeimagens.com.br/imagens/select_erro_ao_salvar-png[/url]
Joel Rodrigues
16/09/2013
Jair Souza
16/09/2013
[url]http://uploaddeimagens.com.br/imagens/select_criado-png[/url]
Jair Souza
16/09/2013
[url]http://uploaddeimagens.com.br/imagens/select_criado-png[/url]
Olá pessoal, alguém pode me dar um socorro aqui... ?
Não posso desistir parece faltar tão pouco...mas no momento estou sem rumo.
Matheus Caldas
16/09/2013
[url]http://uploaddeimagens.com.br/imagens/select_criado-png[/url]
Olá pessoal, alguém pode me dar um socorro aqui... ?
Não posso desistir parece faltar tão pouco...mas no momento estou sem rumo.
Bom dia Iniciante,
Tem como vc postar um trecho do código onde vc faz a edição do funcionário?
Joel Rodrigues
16/09/2013
Jair Souza
16/09/2013
Botão alterar, habilita os textbox e o combobox para edição.
Botão cancelar, desabilita os textbox e o combobox para edição sem salvar.
Estas imagens abaixo mostram os passos que segui para criar, depois no grid editei o DataPropertyName
da column Perfil para “Descricao”, editei as propriedades no combobox e o erro que está dando:
Form :
[url]http://uploaddeimagens.com.br/imagens/form-png[/url]
Select criado :
[url]http://uploaddeimagens.com.br/imagens/select_criado-png--2[/url]
Alteração DataPropertyName da column "Perfil" :
[url]http://uploaddeimagens.com.br/imagens/alteracao_datapropertyname-png[/url]
Property Combo :
[url]http://uploaddeimagens.com.br/imagens/combo_config-png[/url]
Depois que criei este Select acontece os seguintes problemas :
*Se altero o tipo de perfil num cadastro já existente, ou seja altero a informação no combobox dá o erro
Column ‘IDFuncionario’ is constrained to be unique. Value ‘1’ is already present.
Coluna 'IDFuncionario' é restrito a ser único. Valor '1 'já está presente.
*Se salvo um cadastro novo preenchendo todos os campos e selecionando o tipo de perfil no combobox,
Ele salva no banco sem a informação de perfil e tambem não mostra o novo cadastro no form, se cadastrar sem selecionar perfil no combobox salva e carrega no form normalmente, mas indo no grid não mostra nenhum perfil na coluna perfil.
[url]http://uploaddeimagens.com.br/imagens/erro_ao_salvar-png--2[/url]
E este é código do botão salvar, na atualização do form usando o Fill original ou o Fill do select criado dá erros diferentes, mas com nenhum dá certo.
BtnSalvar_Click
try
{
if (senhaTextBox.Text == ConfSenhatextbox.Text)
{
this.Validate();
this.funcionarioBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.bDBiblioteca2DataSet);
MessageBox.Show("Registro Salvo com Sucesso !", "Salvar", MessageBoxButtons.OK, MessageBoxIcon.Information);
//Atualiza Form – Original.
this.funcionarioTableAdapter.Fill(this.bDBiblioteca2DataSet.Funcionario);
OU
//Atualiza Form – Select Criado.
this.funcionarioTableAdapter.FillDescrPerfil(this.bDBiblioteca2DataSet.Funcionario);
DesabilitaCampos();
this.tabControl1.TabPages.Add(this.tabPage2);
}
else
{
MessageBox.Show("Senhas não são Iguais !", "Salvar", MessageBoxButtons.OK, MessageBoxIcon.Error);
ConfSenhatextbox.ForeColor = Color.Red;
ConfSenhatextbox.Focus();
}
}
catch (Exception ex)
{
MessageBox.Show("" + ex.Message, "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Error);
//Atualiza Form – Original.
this.funcionarioTableAdapter.Fill(this.bDBiblioteca2DataSet.Funcionario);
OU
//Atualiza Form – Select Criado.
this.funcionarioTableAdapter.FillDescrPerfil(this.bDBiblioteca2DataSet.Funcionario);
this.tabControl1.TabPages.Add(this.tabPage2);
DesabilitaCampos();
}
}
Se precisar mais informações é só dizer.
Desde já agradeço.
Jair Souza
16/09/2013
[url]http://uploaddeimagens.com.br/imagens/parametros_data_bound_items_-_combobox-png--2[/url]
...porém quando faço pesquisa por nome através do textbox no page2 onde fica o gridview o combobox do page1 fica em branco, o que ainda está errado ?
Para lembrar :
*Tem um SELECT para preencher com a descricçao do perfil e não com o ID :
SELECT F.IDFuncionario, F.Nome, F.Login, F.Senha, F.Perfil, P.Descricao, F.Situacao
FROM (Funcionario F INNER JOIN
Perfil P ON F.Perfil = P.IDPerfil)**Para a pesquisa no textbox na page2 tem outro SELECT :
SELECT F.IDFuncionario, F.Nome, F.Login, F.Senha, P.Descricao, F.Situacao
FROM (Funcionario F INNER JOIN
Perfil P ON F.Perfil = P.IDPerfil)
WHERE (F.Nome LIKE '%' + ? + '%')
Jair Souza
16/09/2013
Finalmente encontrei o erro, os parâmetros do Data Bound Items do ComboBox estavam errados, veja na imagem abaixo:
[url]http://uploaddeimagens.com.br/imagens/parametros_data_bound_items_-_combobox-png--2[/url]
...porém quando faço pesquisa por nome através do textbox no page2 onde fica o gridview o combobox do page1 fica em branco, o que ainda está errado ?
Para lembrar :
*Tem um SELECT para preencher com a descricçao do perfil e não com o ID :
SELECT F.IDFuncionario, F.Nome, F.Login, F.Senha, F.Perfil, P.Descricao, F.Situacao
FROM (Funcionario F INNER JOIN
Perfil P ON F.Perfil = P.IDPerfil) **Para a pesquisa no textbox na page2 tem outro SELECT :
SELECT F.IDFuncionario, F.Nome, F.Login, F.Senha, P.Descricao, F.Situacao
FROM (Funcionario F INNER JOIN
Perfil P ON F.Perfil = P.IDPerfil)
WHERE (F.Nome LIKE '%' + ? + '%')
José
16/09/2013
Joel Rodrigues
16/09/2013
No caso, você tem que trazer as duas colunas (código e descrição no select.
Jair Souza
16/09/2013
Seria como na imagem abaixo, incluo o IdPerfil na tabela funcionario altero o relacionamento e elimino o campo Perfil ? no ACCESS barbada, mas no projeto como faço ?
É o meu primeiro projeto...hehehe
[url]http://uploaddeimagens.com.br/imagens/idperfil-png[/url]
Mais uma vez, obrigado pela paciência.
Joel Rodrigues
16/09/2013
Então, ao invés de tirar a IDPerfil do select, mantenha ela e traga também a Descrição.
Jair Souza
16/09/2013
tanto no combobox perfil como na coluna perfil do grid.
Ficaram assim os dois, o primeiro responsável por mostrar a Descrição e não o ID no Campo Perfil e o segundo responsável pela pesquisa através do textbox mostrando o resultado no grid :
SELECT F.IDFuncionario, F.Nome, F.Login, F.Senha, F.Perfil, P.Descricao, F.Situacao FROM Funcionario F INNER JOIN Perfil P ON F.Perfil = P.IDPerfil SELECT F.IDFuncionario, F.Nome, F.Login, F.Senha, F.Perfil, P.Descricao, F.Situacao FROM Funcionario F INNER JOIN Perfil P ON F.Perfil = P.IDPerfil WHERE (F.Nome LIKE ‘%’ + ? + ‘%’)
***Resolvido 100%, Muito Obrigado !