Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Hippler

combobox

Recommended Posts

Olá pessoal boa noite!!!

 

 

 

Tipo quero que o programa pegue os dados contido na minha combobox, (essa combobox é uma chave estrangeira, nela contem os dados da outra tabela)

 

se eu clicar em alguma cidade ele não vai dar erro, mais se eu deixar ela vazia ele dá erro (the insert statement conflicted with the foreign key constraint "Fk_Estabeleciment_subtipo_psicosocial". The conflict occured in database "Exames_TCC", table "dbo.subtipo.....", column "cod_sub_ti... . the statement has benn terminated.")

 

Então o que posso fazer para salvar ele normal sem erros ?

 

 

 

estab.cod_sub_tipo_estabelecimento = cb_sub_tp_estab.SelectedIndex;

 

 

ALGUEM AJUDA EU AI FAZENDO UM GRANDE FAVOR

 

 

 

Olá pessoal tipo fiz de tudo :S cara to ficando até vesgo de tanto olhar esse erro e não encontrar a solução. Em outros foruns o pessoal fala que é que não criou o campo na tabela e tals outros que está errada a senha de conexao com o banco... Mais tipo chequei tudo e está ok. Não entendo o que esteja errado... Por favor de verdade alguém me ajuda. Vai ai os prints mostrando que está tudo ok.

 

 

 

foto1

 

foto2

 

foto3

 

foto4

 

foto5

 

foto6

 

 

 

Está ai agora acho que vou dormir pois estou ficando com dor nos olhos já.

 

Obrigado desde já :)

 

 

 

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu executo o programa, não preencho nenhum dos campos, ou pode preencher todos também que dá erro. dai quando eu clico no botão gravar vem essa mensagem ai de erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Posta seu codigo ai.

por que pelo erro, esta ocorrendo que ao tentar executar um insert, esta indo um valor que deve existir antes em outra tabela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

aqui a camada DAL:

conexao = new SqlConnection(conexao_sqlserver);

SqlCommand sql = new SqlCommand("insert into Estabelecimento (est_pessoa_fisica_juridica,est_cod_tipo_estabelecimento,est_situacao,est_cod_sub_tipo_estabelecimento,est_cnes, est_cnpj_cpf ,est_cnpj_mantenedora,est_razao_social,est_nome_fantasia,est_logradouro,est_numero,est_complemento,est_bairro,est_cod_ibge_mun,est_cod_estado,est_cep,est_r_saude,est_microregiao,est_d_sanitario,est_mod_assist,est_telefone,est_fax) values (@est_pessoa_fisica_juridica,@est_cod_tipo_estabelecimento, @est_situacao, @est_cod_sub_tipo_estabelecimento, @est_cnes,@est_cnpj_cpf ,@est_cnpj_mantenedora,@est_razao_social,@est_nome_fantasia, @est_logradouro, @est_numero, @est_complemento,@est_bairro, @est_cod_ibge_mun ,@est_cod_estado, @est_cep,@est_r_saude,@est_microregiao, @est_d_sanitario,@est_mod_assist, @est_telefone, @est_fax)", conexao);

 

sql.Parameters.AddWithValue("@est_pessoa_fisica_juridica", estabelecimento.est_pessoa_fisica_juridica);

sql.Parameters.AddWithValue("@est_cod_tipo_estabelecimento", estabelecimento.est_pessoa_fisica_juridica);

sql.Parameters.AddWithValue("@est_situacao", estabelecimento.situacao);

sql.Parameters.AddWithValue("@est_cod_sub_tipo_estabelecimento", estabelecimento.cod_sub_tipo_estabelecimento);

sql.Parameters.AddWithValue("@est_cnes", estabelecimento.cnes);

sql.Parameters.AddWithValue("@est_cnpj_cpf", estabelecimento.cnpj_cpf);

sql.Parameters.AddWithValue("@est_cnpj_mantenedora", estabelecimento.cnpj_mantenedora);

sql.Parameters.AddWithValue("@est_razao_social", estabelecimento.razao_social);

sql.Parameters.AddWithValue("@est_nome_fantasia", estabelecimento.nome_fantasia);

sql.Parameters.AddWithValue("@est_logradouro", estabelecimento.logradouro);

sql.Parameters.AddWithValue("@est_numero", estabelecimento.numero);

sql.Parameters.AddWithValue("@est_complemento", estabelecimento.complemento);

sql.Parameters.AddWithValue("@est_bairro", estabelecimento.bairro);

sql.Parameters.AddWithValue("@est_cod_ibge_mun", estabelecimento.cod_ibege_mun);

sql.Parameters.AddWithValue("@est_cod_estado", estabelecimento.cod_estado);

sql.Parameters.AddWithValue("@est_cep", estabelecimento.cep);

sql.Parameters.AddWithValue("@est_r_saude", estabelecimento.regiao_saude);

sql.Parameters.AddWithValue("@est_microregiao", estabelecimento.microregiao);

sql.Parameters.AddWithValue("@est_d_sanitario", estabelecimento.depart_sanitario);

sql.Parameters.AddWithValue("@est_mod_assist", estabelecimento.mod_assist);

sql.Parameters.AddWithValue("@est_telefone", estabelecimento.telefone);

sql.Parameters.AddWithValue("@est_fax", estabelecimento.fax);

//sql.Parameters.AddWithValue("@est_email", estabelecimento.email);

//sql.Parameters.AddWithValue("@est_n_alvara", estabelecimento.n_alvara);

sql.Parameters.AddWithValue("@est_data_expedicao", estabelecimento.data_expedicao);

/*sql.Parameters.AddWithValue("@est_orgao_expedidor", estabelecimento.orgao_expedidor);

sql.Parameters.AddWithValue("@est_representante_cpf", estabelecimento.representante_cpf);

sql.Parameters.AddWithValue("@est_representante_nome", estabelecimento.representante_nome);

sql.Parameters.AddWithValue("@est_representante_cargo", estabelecimento.representante_cargo);

sql.Parameters.AddWithValue("@est_representante_email", estabelecimento.representante_email);

sql.Parameters.AddWithValue("@est_cod_esfera_adm", estabelecimento.cod_esfera_adm);

sql.Parameters.AddWithValue("@est_cod_natureza_organizacao", estabelecimento.cod_natureza_organizacao);

sql.Parameters.AddWithValue("@est_cod_retencao_atributos", estabelecimento.cod_retencao_atributos);

sql.Parameters.AddWithValue("@est_cod_hierarquia", estabelecimento.cod_hierarquia);

sql.Parameters.AddWithValue("@est_cod_atv_ensino_pesquisa", estabelecimento.cod_atv_ensino_pesquisa);

sql.Parameters.AddWithValue("@est_tipo", estabelecimento.tipo);

sql.Parameters.AddWithValue("@est_gestao", estabelecimento.gestao);

sql.Parameters.AddWithValue("@est_cod_atividade", estabelecimento.cod_atividade);

sql.Parameters.AddWithValue("@est_cod_atendimento", estabelecimento.cod_atendimento);

sql.Parameters.AddWithValue("@est_cod_convenio", estabelecimento.cod_convenio);

sql.Parameters.AddWithValue("@est_conexao_net", estabelecimento.conexao_net);

sql.Parameters.AddWithValue("@est_tipo_conexao", estabelecimento.tipo_conexao);

sql.Parameters.AddWithValue("@est_telefonia_fixa", estabelecimento.telefonia_fixa);

sql.Parameters.AddWithValue("@est_telefonia_movel", estabelecimento.telefonia_movel);*/

 

 

 

conexao.Open();

 

sql.ExecuteNonQuery();

 

}

catch (Exception erro)

{

throw erro;

}

finally

{

conexao.Close();

}

 

}

 

aqui a camada BLL

public void gravaEstabDal(AcessaDadosEstabelecimento estabelecimento)

{

try

{

 

estab_dal = new estabelecimentoDAL();

estab_dal.gravaEstabelecimento(estabelecimento);

}

catch (Exception erro)

{

throw erro;

}

}

 

E por ultimo o de interface

 

AcessaDadosEstabelecimento estab = new AcessaDadosEstabelecimento();//estancio a classe de acesso aos dados

estab.est_pessoa_fisica_juridica = Convert.ToInt32(cb_pessoa.SelectedValue);

estab.cod_tipo_estabelecimento = Convert.ToInt32(cb_tp_estab.SelectedValue);

estab.situacao = Convert.ToInt32(cb_situacao.SelectedValue);

estab.cod_sub_tipo_estabelecimento = Convert.ToInt32(cb_sub_tp_estab.SelectedValue);

estab.cnes = string.IsNullOrEmpty(tb_cnes.Text) ? 0 : Convert.ToInt16(tb_cnes.Text);

estab.cnpj_cpf = tb_cnpj_estab.Text;

estab.cnpj_mantenedora = tb_cnpj_mantenedora.Text;

estab.razao_social = tb_razao_social.Text;

estab.nome_fantasia = tb_nome_fantasia.Text;

estab.logradouro = tb_logradouro.Text;

estab.numero = tb_numero.Text;

estab.complemento = tb_complemento.Text;

estab.bairro = tb_bairro.Text;

estab.cod_ibege_mun = Convert.ToInt32(cb_municipio.SelectedValue);

estab.cod_estado = Convert.ToInt32(cb_estado.SelectedValue);

estab.cep = tb_cep.Text;

estab.regiao_saude = string.IsNullOrEmpty(tb_r_saude.Text) ? 0 : Convert.ToInt16(tb_r_saude.Text);

estab.microregiao = string.IsNullOrEmpty(tb_microregiao.Text) ? 0 : Convert.ToInt32(tb_microregiao.Text);

estab.depart_sanitario =string.IsNullOrEmpty(tb_d_sanitario.Text) ? 0 : Convert.ToInt32(tb_d_sanitario.Text);

estab.mod_assist = tb_mod_assist.Text;

estab.telefone = tb_telefone.Text;

estab.fax = tb_fax.Text;

estab.data_expedicao = Convert.ToDateTime(dt_data.Text);

 

try

{

LimpaControles();

estabelecimentoBLL estab_bll = new estabelecimentoBLL();

estab_bll.gravaEstabDal(estab);//chamo o metodo do bll para gravar

MessageBox.Show("Estabelecimento Gravado com Sucesso");

 

}

catch (Exception erro)

{

MessageBox.Show("Erro ao Cadastrar o estabelecimento" + erro);

}

}

 

Tipo tenho quase certeza que o erro está acontecendo que quando não tem nada na combobox ele joga um valor louco para o banco dai o banco não aceita.... teria que fazer meio que assim.... se a pessoa não selecionou nada na combo ele manda o valor null para o banco... mais nao sei fazer isso.... se alguem puder me ajudar....

postei um video para mostrar melhor....

segue o link :http://www.youtube.com/watch?v=sFLGc8PRxIc

 

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

No caso, você tem que validar se o usuario selecionou algo nas combos, pois as informações que deve entrar no insert estão com relacionementos, e isso obriga o usuario a selecionar algo na combo.

Devido ao relacinamento você não pode entrar com um valor qualquer ou um valor nulo, tem q ser uma informação da outra tabela que esteja relacionada.

 

Quanto au entrar limpar os dados, você lipar após o carregamento do formulário, ou seja, após carregar, limpa os campos. sacou!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo queria que ele fizesse o mesmo que foi feito no inteiro.. fiz o mesmo mais não deu certo

 

estab.cod_sub_tipo_estabelecimento = string.IsNullOrEmpty(cb_sub_tp_estab.Text) ? 0 : Convert.ToInt32(cb_sub_tp_estab.SelectedValue);

estab.cnes = string.IsNullOrEmpty(tb_cnes.Text) ? 0 : Convert.ToInt16(tb_cnes.Text);

 

Cara sou meio leigo em programação... como faria para validar os dados ? ver se tem algo na combo ou nao... e o que ele salvaria no banco se nao tivesse nada na combo ?

 

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por existir uma relação entre tabelas, o valor nunca pode ser null ou diferente de um codigo que exista na tabela estabelecimento.

Quanto a validar, é bem simples, no evento salvar, antes de qualquer coisa você valida campo por campo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tudo bem entendi o que você quis dizer... Mais estava pensando uma coisa.

Cadastrei por exemplo dentro da tabela estado com codigo 9999 descricao não informado.

Como que faço para que se o usuario não selecionar nada ele salve esse codigo automatico dentro da outra tabela ? Tipo isso deve ter como fazer.

Se puder posta +- como seria a linha de programação... pois ainda estou na facu e não manjo quase nada..

 

E como eu faria para apareçer na tela do usuario no caso uma mensagem para que ele preencher algum campo que ele deixou em branco... essa mensagem apareceria quando ele clicasse no botao salvar ok.

 

Obrigado.

 

Atá achei como fazer ele salvar o 9999 é só eu colocar ele no lugar do zero :)

mais e a outra parte da mensagem como faria ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

faça assim:

estab.cod_sub_tipo_estabelecimento = string.IsNullOrEmpty(cb_sub_tp_estab.SelectedValue) ? "" : 9999;

Compartilhar este post


Link para o post
Compartilhar em outros sites

É Ivan estou fazendo +- assim... Tipo um amigo meu de faculdade que tinha me ensinado...

 estab.est_pessoa_fisica_juridica = string.IsNullOrEmpty(cb_pessoa.Text) ? 99999 : Convert.ToInt32(cb_pessoa.SelectedValue);          estab.cod_tipo_estabelecimento = string.IsNullOrEmpty(cb_tp_estab.Text) ? 99999 : Convert.ToInt32(cb_tp_estab.SelectedValue);             estab.situacao = string.IsNullOrEmpty(cb_situacao.Text) ? 99999 : Convert.ToInt32(cb_situacao.SelectedValue);             estab.cod_sub_tipo_estabelecimento = string.IsNullOrEmpty(cb_sub_tp_estab.Text) ? 99999 : Convert.ToInt32(cb_sub_tp_estab.SelectedValue);

 

Mais teria como eu mostra pelo menssage.show(); que o usuario deixo combo sem selecionar ?

Por que no seu tem " " e eu coloquei o 99999? aquele aspas pega o que ?

Cara desculpa se tiver incomodando... Estou vendo video aulas mais não acho nada relacionado... so com combo normal sem ligacao com banco... Sabe algum lugar onde posso achar tutorial ou algo assim?

Obrigado

 

______________________________

Consegui fazer apareçer a mensagem que é para preencher todos os campos... Mais teria como eu especificar qual campo seria ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

É deu certo aqui tá salvando belezinha. Só ainda não consegui fazer ele expecificar qual campo não foi preenchido mais tudo bem vejo com o professor na facu segunda.

Ah só uma coisa, tipo eu inseir no form um TabControl, pois quero dividir o cadastro em varias partes, tipo uma aba Informações Principais, outra Residenciais, e tals esse tipo, dai cliquei nela e chamei o metodo LimpaControles(); que no caso quando ela abrisse ela já limparia todos os campos deixando em branco. Mais quando clico ele não limpa, e antes sem essr TabControl estava limpando normal.

 

Mais se não souber de boa já ajudou muitooo

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.