Ejecutar Stored Procedures en c# desde ASP.NET
Ejecutar un stored procedure (Procedimiento almacenado) de SQL Server es bastante sencillo y solo cambia de ejecutar una sentencia SQL en un par de detalles a la hora de codificar. Actualizado el 12.03.2011
Versión para VB.NET
En este ejemplo vamos a ver como ejecutar dos stored procedures, uno sin parámetros y otra con parámetros.
En el primer ejemplo ejecutaremos este stored procedure que hace un listado de la tabla authors de la base de datos PUBS:
AS
Select * From authors
El código c# quedaría de la siguiente forma, asignando el resultado del dataset a un GridView
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = “listado_authors”;
cmd.Connection = conn;
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
¿Como quedaria este código si ejecutaramos una sentencia SQL?
Sería muy similar
SqlCommand cmd = new SqlCommand(“Select * From authors”, conn);
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
Como veis cambia muy poco.
Ahora vamos a ver el otro ejemplo en el que ejecutaremos una stored procedure pasandole un parametro.
@estado char(2)
AS
Select * From authors where state = @estado
La forma de pasar parametros es la siguiente:
param[0] = new SqlParameter(“@estado”, SqlDbType.Char);
param[0].Value = “CA”;
Creamos una variable SqlParameter y asignamos los parametros del stored procedure, y despues asignamos el SqlParameter al command:
si el stored procedure tuviera más parametros, estos se los asignariamos de la siguiente forma:
param[1].Value = “CA”;
El código en c# quedaria de la siguiente forma:
SqlCommand cmd = new SqlCommand();
SqlParameter[] param = new SqlParameter[1];
param[0] = new SqlParameter(“@estado”, SqlDbType.Char);
param[0].Value = “CA”;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = “listado_autores_params”;
cmd.Connection = conn;
cmd.Parameters.AddRange(param);
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
Podemos ver que es igual de sencillo ejecutar un Stored Procedure que una sentencia SQL y el rendimiento mejorara en vuestras aplicaciones si ejecutais storeds procedures
Y esto es todo, feliz programming!!
Saludos
Alex.



