none
Inserir ID no BD e não a categoria selecionada no DropDownList RRS feed

  • Pergunta

  • Galera,

    Tenho um formulário com um DropDownList que traz uma lista de categorias do BD.

    Gostaria de saber como faço para que seja salvo o ID referente a categoria e não a categoria selecionada no DropDownList?



    Segue meu cód:

    protected void BtnCadastrar_Click(object sender, EventArgs e)

    {

    SqlConnection oConn = new SqlConnection(ConfigurationManager.AppSettings["Conexao"]);

    oConn.Open();

    SqlCommand oCmd = new SqlCommand("INSERT INTO mensagens([Titulo], [CategoriaID], [mensagem]) VALUES (@Titulo, @categoriaID, @mensagem)", oConn);

    oCmd.Parameters.AddWithValue("@Titulo", TxtTitulo.Text);

    oCmd.Parameters.AddWithValue("@CategoriaID", DropDownList1.Text);

    oCmd.Parameters.AddWithValue("@mensagem", TxtMensagem.Text);

    oCmd.ExecuteNonQuery();

    oConn.Close();

    }


    Róger
    terça-feira, 3 de fevereiro de 2009 23:31

Respostas


  • Encontrei a solucao, e segue abaixo o cód corrigido, caso alguém tenha o mesmo problema.


    protected void BtnCadastrar_Click(object sender, EventArgs e)

    {

    SqlConnection oConn = new SqlConnection(ConfigurationManager.AppSettings["Conexao"]);

    oConn.Open();

    SqlCommand oCmd = new SqlCommand("INSERT INTO mensagens([Titulo], [CategoriaID], [mensagem]) VALUES (@Titulo, @categoriaID, @mensagem)", oConn);

    oCmd.Parameters.AddWithValue("@Titulo", TxtTitulo.Text);

    oCmd.Parameters.AddWithValue("@CategoriaID", DropDownList1.SelectedValue);

    oCmd.Parameters.AddWithValue("@mensagem", TxtMensagem.Text);

    oCmd.ExecuteNonQuery();

    oConn.Close();

    }


    //Configurar essas duas propriedades no DropDownList
    //DataTextField = Nome do Campo que possui o valor a ser carregado no DropDown
    //DataValueField = Nome do Campo que possui os codigos que vc dejesa retornara("CategoriaID");

    Róger
    • Marcado como Resposta Róger Marroni quinta-feira, 5 de fevereiro de 2009 16:05
    quinta-feira, 5 de fevereiro de 2009 16:04

Todas as Respostas


  •  Caro Róger, buenas tche!!


    Seguem alguns links que podem te ajudar:

    C# - Preenchendo um DropDownList em uma página ASP .NET
    http://www.macoratti.net/08/09/c_pddl1.htm

    Usando DropDownList em páginas ASP.NET
    http://www.macoratti.net/aspn_ddl.htm 

    Preenchendo um controle DropDowlist
    http://www.macoratti.net/aspn_cbo.htm


    Abraços e bons estudos!


    Magno Machado Borba |- Se o post foi util ou resposta nao esqueca de marcar.
    quarta-feira, 4 de fevereiro de 2009 16:46

  • Encontrei a solucao, e segue abaixo o cód corrigido, caso alguém tenha o mesmo problema.


    protected void BtnCadastrar_Click(object sender, EventArgs e)

    {

    SqlConnection oConn = new SqlConnection(ConfigurationManager.AppSettings["Conexao"]);

    oConn.Open();

    SqlCommand oCmd = new SqlCommand("INSERT INTO mensagens([Titulo], [CategoriaID], [mensagem]) VALUES (@Titulo, @categoriaID, @mensagem)", oConn);

    oCmd.Parameters.AddWithValue("@Titulo", TxtTitulo.Text);

    oCmd.Parameters.AddWithValue("@CategoriaID", DropDownList1.SelectedValue);

    oCmd.Parameters.AddWithValue("@mensagem", TxtMensagem.Text);

    oCmd.ExecuteNonQuery();

    oConn.Close();

    }


    //Configurar essas duas propriedades no DropDownList
    //DataTextField = Nome do Campo que possui o valor a ser carregado no DropDown
    //DataValueField = Nome do Campo que possui os codigos que vc dejesa retornara("CategoriaID");

    Róger
    • Marcado como Resposta Róger Marroni quinta-feira, 5 de fevereiro de 2009 16:05
    quinta-feira, 5 de fevereiro de 2009 16:04
  • Ola pessoal sou novo em C# e estou com uma duvida :
       
                  por exemplo :
                                            Eu quero inserir no banco dados e tabelas relacionadas e buscar nas mesmas porém
    na propriedade  tenho DataTextField="nome" DataValueField="filialid"  do dropdowlist no entanto isso faz com que meo data reader nao carregue os dados no dropdown e se eu retirar DataValueField="filialid" ele busca mas nao consigo inserir se alguem puder ajudar agradeço!


     conn.Open();

                    string sql = "SELECT setor.setorid, setor.nome as Setor,  " +
                                " setor.responsavel as Responsavel, filial.nome as Filial" +
                                " FROM setor, filial WHERE (setor.filialid = filial.filialid)" +
                                " and (setor.setorid = @setorid)";

                    OleDbCommand cmd = new OleDbCommand(sql, conn);

                    cmd.Parameters.Add(new OleDbParameter("@setorid", this.txt_codigo.Text));

                    cmd.CommandType = CommandType.Text;
                    OleDbDataReader dr = cmd.ExecuteReader();

                 

                    if (dr.HasRows)
                    {
                        dr.Read();
                        txt_codigo.Text = dr["setorid"].ToString();
                        txt_responsavel.Text = dr["Responsavel"].ToString();
                        txt_nome.Text = dr["Setor"].ToString();
                        ddl_filial.SelectedValue = dr["Filial"].ToString();
              

                        dr.Dispose();
                        conn.Close();
                        conn.Dispose();
                    }

                    else
                    {
                        MessageBox1.ShowMessage("Código Inexistente!");

                    }
                }

            }

            catch (Exception ex)
            {
                MessageBox1.ShowMessage("Erro: Contate o CPD : " + ex.Message);
            }

        }


        protected void ImageButton2_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                if (txt_codigo.Text == "")
                {
                    MessageBox1.ShowMessage("Insira o Código!");
                }
                else
                {
                    cs.Delete(txt_codigo.Text);
                    MessageBox1.ShowMessage("Registro Excluido !");
                    LimparCampos();

                }
            }
    quarta-feira, 5 de agosto de 2009 19:53