none
insert em tabelas relacionadas - entity framework RRS feed

  • Pergunta

  • Boa tarde, 

     Estou fazendo um projeto e, como sou novo na área de programação, estou precisando de ajuda em uma situação.

     Tenho um cadastro de fornecedores onde estava utilizando o DetailsViews para insert, só que agora tenho que incluir neste insert os telefones, que deverão preencher outra tabela.

     Então, tenho uma tabela fornecedores (insert com DetailsViews) e outra de telefones.

     Ainda neste DetailsViews, ha um DropDownList de Cidades de uma outra tabela, mas isso eu fiz usando o template do componente.

    Obrigado.

     

    sexta-feira, 15 de junho de 2012 16:56

Respostas

  • Marcos geralmente os dados que vc está carregando no dropdownlist é um campo de chave estrangeria na tabela que vc quer gravar, portanto a gravação da tabela segue assim, vc define os campos e os valores que serão gravados, no caso do dropdownlist o usuário seleciona uma opção e ai qdo vc vai gravar vc pega esse valor do

    dropdownlist.selectitenvalue

    Claro que antes vc obriga o usuário a selecionar algo no dropdownlist e testa caso ele não tenha selecionado nada, assim vc garante que vira um valor diferente geralmente de 0 que é a opção que vc coloca na primeira inicialização do dropdownlist tipo isso

    protected void Ddl_Perfil_DataBound(object sender, EventArgs e)
            {
             //   ((DropDownList)sender).Items.Insert(0, new ListItem("--- Selecione um Perfil ---"));
            }

    assim vc inicializa seu dropdownlist e configura o indice 0 para essa opção "selecione um perfil" e antes de gravar vc testa assim :

    string idperfil = Ddl_Perfil.SelectedItem.Value ;

    if (idperfil == "0")
                {
                    ClientScript.RegisterClientScriptBlock(this.GetType(), "focus", "<script language=javascript>alert('Selecione um perfil')</script>");
                    Ddl_Perfil.Focus();
                    return;
                }


    Junior


    • Editado Junior_luiz sexta-feira, 15 de junho de 2012 18:01
    • Marcado como Resposta Harley Araujo segunda-feira, 18 de junho de 2012 14:22
    sexta-feira, 15 de junho de 2012 18:00

Todas as Respostas

  • faz assim :

    o dropdownlist vc carrega no load da pagina

    e qdo for gravar faz assim

    TB_USU_USUARIOS usuario = new TB_USU_USUARIOS
                        {
                            USU_ATIVO = Rbl_Ativo.SelectedItem.Value,
                            USU_ADMINISTRADOR = Rbl_Ad.SelectedItem.Value,
                            USU_EMAIL = txt_email.Text,
                            USU_LOGIN = Txt_Login.Text,
                            USU_NOME = txt_Nome.Text,
                            ENT_ID = entid, 
                            PER_CODIGO = idperf,
                            USU_SENHA = Txt_Senha.Text
                        };


    Junior

    sexta-feira, 15 de junho de 2012 17:01
  • Desculpe o meu pouco conhecimento, mas não entendi muito bem o código.

    Você poderia detalhar mais.

    Obrigado.

    sexta-feira, 15 de junho de 2012 17:46
  • Marcos geralmente os dados que vc está carregando no dropdownlist é um campo de chave estrangeria na tabela que vc quer gravar, portanto a gravação da tabela segue assim, vc define os campos e os valores que serão gravados, no caso do dropdownlist o usuário seleciona uma opção e ai qdo vc vai gravar vc pega esse valor do

    dropdownlist.selectitenvalue

    Claro que antes vc obriga o usuário a selecionar algo no dropdownlist e testa caso ele não tenha selecionado nada, assim vc garante que vira um valor diferente geralmente de 0 que é a opção que vc coloca na primeira inicialização do dropdownlist tipo isso

    protected void Ddl_Perfil_DataBound(object sender, EventArgs e)
            {
             //   ((DropDownList)sender).Items.Insert(0, new ListItem("--- Selecione um Perfil ---"));
            }

    assim vc inicializa seu dropdownlist e configura o indice 0 para essa opção "selecione um perfil" e antes de gravar vc testa assim :

    string idperfil = Ddl_Perfil.SelectedItem.Value ;

    if (idperfil == "0")
                {
                    ClientScript.RegisterClientScriptBlock(this.GetType(), "focus", "<script language=javascript>alert('Selecione um perfil')</script>");
                    Ddl_Perfil.Focus();
                    return;
                }


    Junior


    • Editado Junior_luiz sexta-feira, 15 de junho de 2012 18:01
    • Marcado como Resposta Harley Araujo segunda-feira, 18 de junho de 2012 14:22
    sexta-feira, 15 de junho de 2012 18:00
  • Obrigado, consegui resolver.

    Como posso fazer um if para verificar se há um registro no banco, vi alguns post aqui, mas não deu certo.

    Obrigado.


    segunda-feira, 18 de junho de 2012 14:27