Saltar al contenido

Llamar a un procedimiento almacenado con parámetro en c #

Solución:

Es prácticamente lo mismo que ejecutar una consulta. En su código original, está creando un objeto de comando, poniéndolo en el cmd variable y nunca la use. Aquí, sin embargo, usará eso en lugar de da.InsertCommand.

Además, use un using para todos los objetos desechables, de modo que esté seguro de que se eliminan correctamente:

private void button1_Click(object sender, EventArgs e) {
  using (SqlConnection con = new SqlConnection(dc.Con)) {
    using (SqlCommand cmd = new SqlCommand("sp_Add_contact", con)) {
      cmd.CommandType = CommandType.StoredProcedure;

      cmd.Parameters.Add("@FirstName", SqlDbType.VarChar).Value = txtFirstName.Text;
      cmd.Parameters.Add("@LastName", SqlDbType.VarChar).Value = txtLastName.Text;

      con.Open();
      cmd.ExecuteNonQuery();
    }
  }
}

Tienes que agregar parámetros ya que es necesario para que el SP se ejecute

using (SqlConnection con = new SqlConnection(dc.Con))
{
    using (SqlCommand cmd = new SqlCommand("SP_ADD", con))
    {
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@FirstName", txtfirstname.Text);
        cmd.Parameters.AddWithValue("@LastName", txtlastname.Text);
        con.Open();
        cmd.ExecuteNonQuery();
    }            
}

cmd.Parameters.Add(String parameterName, Object value) ahora está en desuso. En su lugar use cmd.Parameters.AddWithValue(String parameterName, Object value)

Add (String parameterName, Object value) ha quedado obsoleto. Utilice AddWithValue (String parameterName, Object value)

No hay diferencia en términos de funcionalidad. La razón por la que desaprobaron el cmd.Parameters.Add(String parameterName, Object value) a favor de AddWithValue(String parameterName, Object value) es dar más claridad. Aquí está la referencia de MSDN para el mismo

private void button1_Click(object sender, EventArgs e) {
  using (SqlConnection con = new SqlConnection(dc.Con)) {
    using (SqlCommand cmd = new SqlCommand("sp_Add_contact", con)) {
      cmd.CommandType = CommandType.StoredProcedure;

      cmd.Parameters.AddWithValue("@FirstName", SqlDbType.VarChar).Value = txtFirstName.Text;
      cmd.Parameters.AddWithValue("@LastName", SqlDbType.VarChar).Value = txtLastName.Text;

      con.Open();
      cmd.ExecuteNonQuery();
    }
  }
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *