none
Como inserir registro com chave estrangeira RRS feed

  • Pergunta

  • Bom dia pessoal,

    Tenho uma app asp com uma base sql server.

    Resumindo, tem uma parte da app onde o usuário precisa selecionar uma opção num dropdownlist (onde o datasource é uma tabela que eu tenho já populada no sql server) e quando clicasse em "Ok", uma segunda tabela pegasse o texto do dropdownlist (eu preciso do texto, e não do ID).

    ASP.NET eu tenho:

    <asp:Dropdownlist ID="Dropdown_Quantitativo" runat="server" DataSourceID="DataSourceAtividade" DataTextField="ATIVIDADE" DataValueField="ID" AutoPostBack="True" OnSelectedIndexChanged="Dropdown_Quantitativo_SelectedIndexChanged" />
                        <asp:SqlDataSource ID="DataSourceAtividade" runat="server" ConnectionString="<%$ ConnectionStrings:DICOMConnectionString %>" SelectCommand="SELECT * FROM [ATIVIDADES]"></asp:SqlDataSource>

    E C# está pelado ainda:

    public partial class AtividadesQuantitativas : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
        protected void Btn_Add_AtivQuantitativa_Click(object sender, EventArgs e)
        {

        }
        protected void Dropdown_Quantitativo_SelectedIndexChanged(object sender, EventArgs e)
        {

        }
    }

    Eu estou começando a aprender agora, então agradeço desde já a ajuda.


    Leopoldo A. Nascimento (Ajude o máximo que puder, que assim será feito por você.) - Foi útil esta resposta? Então marque. ;)

    • Movido João_ Prado sexta-feira, 4 de abril de 2014 15:12 Contexto webforms
    sexta-feira, 4 de abril de 2014 13:58

Respostas

  • Leopoldo,

    Se você quiser realizar a filtragem pelo usuário logado, será necessário você obter o usuário logado EXATAMENTE da forma como está registrado na sua base de dados. 

    Para obter o nome do do usuário que está logado em aplicação ASP.NET WebForms, basta utilizar o código abaixo:

    string usuario = HttpContext.Current.User.Identity.Name;

    Lembrando que:

    - em se tratando de Windows Authentication, o nome da máquina ou do domínio fará parte desta identificação: ex: NOME_DA_MAQUINA\nome_do_usuario.

    - em se tratando de Forms Authentication, o nome do usuário estará sozinho: nome_do_usuario

    Para obter o nome do usuário logado em aplicações ASP.NET MVC, dentro do controller basta utilizar o código abaixo:

    string usuario = User.Identity.Name;

    Com essa informação nas mãos você pode passá-la para o sua query como filtro no banco de dados.

    OBS: Por uma questão de organização no fórum, sugiro que você abra novas threads quando suas dúvidas forem referentes a outros assuntos que fujam do assunto original e procure manter a discussão da thread condizente com o título da mesma.

    Espero que tenha ajudado.


    Renato Person | MCPD

    sábado, 5 de abril de 2014 13:07

Todas as Respostas

  • Olá, bom basta vc pegar o texto usando da combo e fazer o filtro de sua query pelo texto selecionado e retornar o valor isso na teoria, veja essa thread que mostra como fazer um SELECT na base de dados.

    sexta-feira, 4 de abril de 2014 14:27
  • Daniel,

    Acho que não me expliquei bem.

    Meu dropdown já me mostra o resultado da minha query.

    Já consigo inserir o texto digitado na Textbox também, o problema é fazer com o valor selecionado no dropdownlist o mesmo que eu faço com a textbox.

    Saberia me dizer como ficaria?


    Leopoldo A. Nascimento (Ajude o máximo que puder, que assim será feito por você.) - Foi útil esta resposta? Então marque. ;)

    sexta-feira, 4 de abril de 2014 14:34
  • Não entendi também rs, se for pegar o texto selecionado no dropdownlist é assim :

    string texto = DropDownList1.Text;

    sexta-feira, 4 de abril de 2014 14:40
  • Daniel,

    Na verdade era mais ou menos isso mesmo que eu esperava.

    Por exemplo, quando o usuário vai adicionar um texto no textbox e eu vou inserir na tabela, eu faço:

    comando.Parameters.AddWithValue("@referencia", TextBox.Text);

    E para o Dropdown? São entradas diferentes nesse formulário.

    Valeu pelo help


    Leopoldo A. Nascimento (Ajude o máximo que puder, que assim será feito por você.) - Foi útil esta resposta? Então marque. ;)

    sexta-feira, 4 de abril de 2014 16:21
  • Entendi, isso mesmo basta pegaro valor do drop :

    comando.Parameters.AddWithValue("@valordropdown",DropDownList1.Text);

    • Sugerido como Resposta Giovani Cr sexta-feira, 4 de abril de 2014 19:07
    sexta-feira, 4 de abril de 2014 16:46
  • Só pra aproveitar o gancho, um dos campos da tabela é para pegar o usuário que realizou a inserção dos dados.

    Teria algum tipo de:

    Parameters.AddWithValue("@usuario", GetUser):


    Leopoldo A. Nascimento (Ajude o máximo que puder, que assim será feito por você.) - Foi útil esta resposta? Então marque. ;)

    sexta-feira, 4 de abril de 2014 19:17
  • rs, não existe não... Você diz usuario do sql vc pega na sua connection string, ou usuario do seu sistema !


    sexta-feira, 4 de abril de 2014 19:23
  • Usuário do sistema...

    No template que eu peguei, na página asp.net tem assim:

    <p>Você está loggado como <strong><%: User.Identity.Name %></strong>.</p>

    Ai queria pegar algo do tipo:

    Select USERNAME from USUARIO where NOME = + User.Identity.Name

    É que, por se tratar de uma aplicação onde vários usuários vão registrar atividades quantitativas, queria dar esse GET para gerar relatorios depois.


    Leopoldo A. Nascimento (Ajude o máximo que puder, que assim será feito por você.) - Foi útil esta resposta? Então marque. ;)

    sexta-feira, 4 de abril de 2014 19:33
  • Leopoldo,

    Se você quiser realizar a filtragem pelo usuário logado, será necessário você obter o usuário logado EXATAMENTE da forma como está registrado na sua base de dados. 

    Para obter o nome do do usuário que está logado em aplicação ASP.NET WebForms, basta utilizar o código abaixo:

    string usuario = HttpContext.Current.User.Identity.Name;

    Lembrando que:

    - em se tratando de Windows Authentication, o nome da máquina ou do domínio fará parte desta identificação: ex: NOME_DA_MAQUINA\nome_do_usuario.

    - em se tratando de Forms Authentication, o nome do usuário estará sozinho: nome_do_usuario

    Para obter o nome do usuário logado em aplicações ASP.NET MVC, dentro do controller basta utilizar o código abaixo:

    string usuario = User.Identity.Name;

    Com essa informação nas mãos você pode passá-la para o sua query como filtro no banco de dados.

    OBS: Por uma questão de organização no fórum, sugiro que você abra novas threads quando suas dúvidas forem referentes a outros assuntos que fujam do assunto original e procure manter a discussão da thread condizente com o título da mesma.

    Espero que tenha ajudado.


    Renato Person | MCPD

    sábado, 5 de abril de 2014 13:07
  • Obrigado Renato,

    E me desculpe.

    Serei mais cuidadoso na próxima! :(


    Leopoldo A. Nascimento (Ajude o máximo que puder, que assim será feito por você.) - Foi útil esta resposta? Então marque. ;)

    segunda-feira, 7 de abril de 2014 12:22