Usuário com melhor resposta
C# - Problemas na hora de localizar um registro.

Pergunta
-
Boa tarde,
Estou com uma dúvida meio estranha em C#:
Foi criado um botão para localizar os registros de cliente e o de fabricante, porém os de cliente está buscando normal, mas o de fabricante, ele só mostra o nome quando vou realizar a segunda busca de outro cliente(nada a ver) , e o fabricante acaba ficando com outro fabricante solicitado anteriormente, será que instanciei corretamente ou errado, vou deixar o código abaixo para dar uma olhada:
private void btnCliente_Click(object sender, System.EventArgs e)
{
IcepexLibrary.Cliente cliente = new IcepexLibrary.Cliente();
IcepexLibrary.Fabricante fabricante = new IcepexLibrary.Fabricante();
frmPesquisaCliente pesquisa = new frmPesquisaCliente();
DataSet dsCliente = new DataSet ();
DataSet dsFabricante = new DataSet();
//frmPesquisaClienteFabricanteCe pesquisa2 = new frmPesquisaClienteFabricanteCe();
//IcepexLibrary.TipoCertificacao tipoCertificacao = new IcepexLibrary.TipoCertificacao();
listbox = false;
//pesquisa2.ShowDialog();
pesquisa.ShowDialog ();
if (pesquisa.IdPesquisa > 0)
{
cliente.GetOne (pesquisa.IdPesquisa);
fabricante.GetOne(idCliente, idTipoCertificacao);
idCliente = cliente.Id;
lblRazao.Text = cliente.Razao;
lblFantasia.Text = cliente.Fantasia;
lblDocumento.Text = cliente.Documento;
lblInscricao.Text = cliente.Inscricao;
lblEndereco.Text = cliente.Endereco;
lblNumero.Text = cliente.Numero;
lblComplemento.Text = cliente.Complemento;
lblBairro.Text = cliente.Bairro;
lblCep.Text = cliente.Cep;
lblCidade.Text = cliente.cidade.Cidade;
lblUf.Text = cliente.cidade.Uf;
if(fabricante.NomeFabricante != null)
{
idCliente = cliente.Id;
txtFabricante.Text = fabricante.NomeFabricante;
txtFabricanteFantasia.Text = fabricante.Fantasia;
txtFabricanteEndereco.Text = fabricante.Endereco;
mskFabricanteDocumento.InputMask = "00.000.000/0000-00" ;
optFabricanteMesmo.Enabled = false;
if(fabricante.Documento != null)
{
mskFabricanteDocumento.Text = fabricante.Documento;
}
}
else
{
txtFabricante.Text = String.Empty;
txtFabricanteFantasia.Text = String.Empty;
txtFabricanteEndereco.Text = String.Empty;
mskFabricanteDocumento.InputMask = "00.000.000/0000-00";
optFabricanteMesmo.Enabled = true;
}Milton Honji
Respostas
-
@Milton Honji
Eu nao gosto da estrutura do teu codigo, e confuso, por isso fica dificil ver onde esta o erro.
Aki esta o erro, provavelmente:
if(fabricante.NomeFabricante != null)
{
idCliente = cliente.Id;}
Aki esta outra confusao:
if (pesquisa.IdPesquisa > 0)
{
cliente.GetOne (pesquisa.IdPesquisa);
fabricante.GetOne(idCliente, idTipoCertificacao);
idCliente = cliente.Id;}
Voce criou relacao entra as tabelas na Base-de-Dados ente Fabricante e Cliente?
Remove este codigo :
if (pesquisa.IdPesquisa > 0)
e coloca assim: if (pesquisa.IdPesquisa.Length> 0) e a melhor forma de programar...com Length
Isto e uma pesquiza, acho que esta no lugar errado: fabricante.GetOne(idCliente, idTipoCertificacao);
Deveria estar aki.... if(fabricante.NomeFabricante != null)
{fabricante.GetOne(idCliente, idTipoCertificacao);
resto do codigo...
}Tens de aprender a organizar a tua logica...
A flower cannot blossom without sunshine, and man cannot live without love.
- Marcado como Resposta Marcos SJ sexta-feira, 2 de outubro de 2015 16:49
Todas as Respostas
-
-
-
-
Olá Milton Honji,
Tudo bem?
Quando você diz que "os de cliente está buscando normal", você quer dizer que está tendo um retorno de quais informações referentes ao cliente?
Fiz esta pergunta para confirmar o tipo de retorno que a busca cliente deve trazer.
Marcos Roberto de Souza Junior
Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
-
Marcos Roberto,
Antes de colocar uma instância do fabricante, o desenvolvedor anterior ele já fez para localizar as classes do cliente, depois de um tempo foi passado para localizar os fabricantes, como pode ver, já está instanciado e já está chamando.
O problema que está ocorrendo no testes, é que quando vou fazer uma busca do cliente, ele está fazendo a busca no banco de dados corretamente, mas na hora de incluir o fabricante ele está puxando as informações que foram solicitadas na busca anteriormente(APENAS A CLASSE FABRICANTE).
Milton Honji.
-
@Milton Honji
Eu nao gosto da estrutura do teu codigo, e confuso, por isso fica dificil ver onde esta o erro.
Aki esta o erro, provavelmente:
if(fabricante.NomeFabricante != null)
{
idCliente = cliente.Id;}
Aki esta outra confusao:
if (pesquisa.IdPesquisa > 0)
{
cliente.GetOne (pesquisa.IdPesquisa);
fabricante.GetOne(idCliente, idTipoCertificacao);
idCliente = cliente.Id;}
Voce criou relacao entra as tabelas na Base-de-Dados ente Fabricante e Cliente?
Remove este codigo :
if (pesquisa.IdPesquisa > 0)
e coloca assim: if (pesquisa.IdPesquisa.Length> 0) e a melhor forma de programar...com Length
Isto e uma pesquiza, acho que esta no lugar errado: fabricante.GetOne(idCliente, idTipoCertificacao);
Deveria estar aki.... if(fabricante.NomeFabricante != null)
{fabricante.GetOne(idCliente, idTipoCertificacao);
resto do codigo...
}Tens de aprender a organizar a tua logica...
A flower cannot blossom without sunshine, and man cannot live without love.
- Marcado como Resposta Marcos SJ sexta-feira, 2 de outubro de 2015 16:49