none
Passar valor textBox para um paramentro do procedure pelo c# RRS feed

  • Pergunta

  • Boa noite

    Gostaria de saber se alguem poderia me ajudar na seguinte duvida..preciso executar um procedure ..de forma que inserindo a um valor em textbox e o mesmo passar para o paramentro do procedure e assim ser executado e realizar a instruções do mesmo tipo o insert

    o @pempresa e o paramentro do procedure ..preciso de uma ajuda e para passar o valor textbox para o paramentreo do procedure pesquisando encontrei este codigo so que não atinge o objetivo que preciso que e fazer a execução do procedure

    try

    {

    SqlConnection conna = conexao.obterConexao();

    SqlCommand commab = new SqlCommand();

    commab.Connection = conna;

    commab.CommandText =

    "Sp_teste";

    commab.CommandType =

    CommandType.StoredProcedure;

    SqlParameter Empresa = new SqlParameter("@pempresa", SqlDbType.Float);

    Empresa.Value = Empresa;

    commab.Parameters.Add(Empresa);

    }

    catch (Exception ex)

    {

    MessageBox.Show(ex.Message);

    }

    conexao.fecharConexao();

    }

    sexta-feira, 2 de março de 2012 01:31

Respostas

  •  protected void Button1_Click(object sender, EventArgs e)
        {
          Insert(txt.Text);
        }
    
    public void Insert(float txt){
    try
    
    {
    
    SqlConnection conna = conexao.obterConexao();
    
    SqlCommand commab = new SqlCommand();
    
    commab.Connection = conna;
    
    commab.CommandText =
    
    "Sp_teste";
    
    commab.CommandType =
    
    CommandType.StoredProcedure;
    
    SqlParameter Empresa = new SqlParameter("@pempresa", SqlDbType.Float);
    
    Empresa.Value = txt;
    
    commab.Parameters.Add(Empresa);
    
    int obj = commab.ExecuteNonQuery()
    
    }
    
    catch (Exception ex)
    
    {
    
    MessageBox.Show(ex.Message);
    
    }
    
    conexao.fecharConexao();
    
    }
    }

    • Marcado como Resposta MARCOS BOTAN sábado, 3 de março de 2012 02:05
    sexta-feira, 2 de março de 2012 14:35
  •  protected void Button1_Click(object sender, EventArgs e)
        {
          Insert(txt.Text);
        }
    
    public void Insert(float txt){
    try
    
    {
    
    SqlConnection conna = conexao.obterConexao();
    
    SqlCommand commab = new SqlCommand();
    
    commab.Connection = conna;
    
    commab.CommandText =
    
    "Sp_teste";
    
    commab.CommandType =
    
    CommandType.StoredProcedure;
    
    SqlParameter Empresa = new SqlParameter("@pempresa", SqlDbType.Float);
    
    Empresa.Value = txt;
    
    commab.Parameters.Add(Empresa);
    
    int obj = commab.ExecuteNonQuery()
    
    }
    
    catch (Exception ex)
    
    {
    
    MessageBox.Show(ex.Message);
    
    }
    
    conexao.fecharConexao();
    
    }
    }

      Obrigado deu certo.. obrigado ..agora vou brincar um pouco de programar..rrs..

    So mais pergunta ..se for colocar mais de uma paramentro e so seguir este exemplo

    ?

    • Marcado como Resposta MARCOS BOTAN sábado, 3 de março de 2012 02:05
    sábado, 3 de março de 2012 01:33

Todas as Respostas

  • Bom dia.

    Voce pode fazer assim:

                    SqlParameter parametroSenha = new SqlParameter("@senha_usuario", SqlDbType.VarChar, 6);
                    parametroSenha.Value = seu_text_box;
                    commab.Parameters.Add(parametroSenha);


    Consultoria .NET

    ANALISTA DESENVOLVEDOR
    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como resposta.
    Blog .Net Descomplicado

    sexta-feira, 2 de março de 2012 12:06
  •  protected void Button1_Click(object sender, EventArgs e)
        {
          Insert(txt.Text);
        }
    
    public void Insert(float txt){
    try
    
    {
    
    SqlConnection conna = conexao.obterConexao();
    
    SqlCommand commab = new SqlCommand();
    
    commab.Connection = conna;
    
    commab.CommandText =
    
    "Sp_teste";
    
    commab.CommandType =
    
    CommandType.StoredProcedure;
    
    SqlParameter Empresa = new SqlParameter("@pempresa", SqlDbType.Float);
    
    Empresa.Value = txt;
    
    commab.Parameters.Add(Empresa);
    
    int obj = commab.ExecuteNonQuery()
    
    }
    
    catch (Exception ex)
    
    {
    
    MessageBox.Show(ex.Message);
    
    }
    
    conexao.fecharConexao();
    
    }
    }

    • Marcado como Resposta MARCOS BOTAN sábado, 3 de março de 2012 02:05
    sexta-feira, 2 de março de 2012 14:35
  • O value do Parameters é o valor que vem do form. Cuidado com essas nomeclaturas também.

    Paulo César Viana
    .NET Developer
    MCC - Microsoft Community Contributor
    MCP - Microsoft Certified Professional
    MCTS - Microsoft Certified Technology Especialist
    --
    Marque as respostas e contribua para uma melhora no fórum.

    sexta-feira, 2 de março de 2012 14:57
  •  protected void Button1_Click(object sender, EventArgs e)
        {
          Insert(txt.Text);
        }
    
    public void Insert(float txt){
    try
    
    {
    
    SqlConnection conna = conexao.obterConexao();
    
    SqlCommand commab = new SqlCommand();
    
    commab.Connection = conna;
    
    commab.CommandText =
    
    "Sp_teste";
    
    commab.CommandType =
    
    CommandType.StoredProcedure;
    
    SqlParameter Empresa = new SqlParameter("@pempresa", SqlDbType.Float);
    
    Empresa.Value = txt;
    
    commab.Parameters.Add(Empresa);
    
    int obj = commab.ExecuteNonQuery()
    
    }
    
    catch (Exception ex)
    
    {
    
    MessageBox.Show(ex.Message);
    
    }
    
    conexao.fecharConexao();
    
    }
    }

      Obrigado deu certo.. obrigado ..agora vou brincar um pouco de programar..rrs..

    So mais pergunta ..se for colocar mais de uma paramentro e so seguir este exemplo

    ?

    • Marcado como Resposta MARCOS BOTAN sábado, 3 de março de 2012 02:05
    sábado, 3 de março de 2012 01:33
  • Pode fazer de outras formas também, sem ter que ficar criando um  SqlParameter.

    No próprio command tem a opção para adicionar os parametros, veja:

    private static void UpdateDemographics(Int32 customerID,
        string demoXml, string connectionString)
    {
        // Update the demographics for a store, which is stored 
        // in an xml column. 
        string commandText = "UPDATE Sales.Store SET Demographics = @demographics "
            + "WHERE CustomerID = @ID;";
    
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            SqlCommand command = new SqlCommand(commandText, connection);
            
    		//Id Parameters
    		command.Parameters.Add("@ID", SqlDbType.Int);
            command.Parameters["@ID"].Value = customerID;
    		
    		//Name Parameters
    		command.Parameters.Add("@Name", SqlDbType.Varchar);
            command.Parameters["@Name"].Value = "variavel qualquer";
    
    
            // Use AddWithValue to assign Demographics.
            // SQL Server will implicitly convert strings into XML.
            command.Parameters.AddWithValue("@demographics", demoXml);
    
            try
            {
                connection.Open();
                Int32 rowsAffected = command.ExecuteNonQuery();
                Console.WriteLine("RowsAffected: {0}", rowsAffected);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
    }

    http://msdn.microsoft.com/pt-br/library/system.data.sqlclient.sqlcommand.parameters.aspx

    Agora se você quiser fazer da forma que o legal fez acima, basta criar um array de SqlParameters:

    SqlParameter[] sqlParams = new SqlParameter[5];

    Agora adicionar os valores.

    Ou:

      SqlParameter[] sqlParams = new SqlParameter[] {
         new SqlParameter("@username", strUserName) ,
         new SqlParameter("@password", strPassword)
      };
    
      Dim params As SqlParameter() = { _
         New SqlParameter("@CenterID", centerID), _
         New SqlParameter("@TypeID", typeID) _
      }
    
    SqlParameter[] sqlParams = new SqlParameter[] {
      new SqlParameter("@Required", required),
      questionCode == null ? new SqlParameter("@Code", DBNull.Value) : new SqlParameter("@Code", questionCode)
    };

    http://www.sharpdeveloper.net/content/archive/2007/05/25/creating-sqlparameters-best-practices.aspx


    Paulo César Viana
    .NET Developer
    MCC - Microsoft Community Contributor
    MCP - Microsoft Certified Professional
    MCTS - Microsoft Certified Technology Especialist
    --
    Marque as respostas e contribua para uma melhora no fórum.

    sábado, 3 de março de 2012 11:49
  • sim é só seguir este padrão, porém seria melhor vc criar uma classe de entidade segue um exemplo.

    public class Pessoa{ public string Nome{get;set;} public string Sobrenome{get;set} public string Altura{get;set;} public int Idade{get;set;} public decial Peso{get;set;} }
    
    protected void Button1_Click(object sender, EventArgs e) {
    
    Pessoa objPesoa = new Pessoa();
    objPesoa.Nome = txtNome.Text;
    objPesoa.Sobrenome = txtSobrenome.Text;
    ///....
    Insert(objPessoa); 
    }
    
    public void Insert(Pessoa objPesso){
    try
    
    {
    
    SqlConnection conna = conexao.obterConexao();
    
    SqlCommand commab = new SqlCommand();
    
    commab.Connection = conna;
    
    commab.CommandText =
    
    "Sp_teste";
    
    commab.CommandType =
    
    CommandType.StoredProcedure;
    
    SqlParameter Empresa = new SqlParameter("@Nome", SqlDbType.String);
    
    Empresa.Value = objPesso.Nome;
    
    commab.Parameters.Add(Empresa);
    commab.Parameters.Add(new SqlParameter("@Nome", SqlDbType.String).Value = objPesso.Sobrenome);
    
    
    int obj = commab.ExecuteNonQuery()
    
    }
    
    catch (Exception ex)
    
    {
    
    MessageBox.Show(ex.Message);
    
    }
    
    conexao.fecharConexao();
    
    }
    }





    domingo, 4 de março de 2012 18:33