Publicidad

Ejecutar Stored Procedures en c# desde ASP.NET


Por Alex el 05/06/2007 , Comentar el artículo

Comparte este artículo:        




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.


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:

CREATE PROCEDURE listado_authors

AS

Select * From authors

El código c# quedaría de la siguiente forma, asignando el resultado del dataset a un GridView

SqlConnection conn = new SqlConnection("Server=localhost;Database=PUBS;Uid=sa;Pwd=as");

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

SqlConnection conn = new SqlConnection("Server=localhost;Database=PUBS;Uid=sa;Pwd=as");
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.

CREATE PROCEDURE listado_autores_params
@estado char(2)
AS
Select * From authors where state = @estado

La forma de pasar parametros es la siguiente:

SqlParameter[] param = new SqlParameter[1];
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:

cmd.Parameters.AddRange(param);

si el stored procedure tuviera más parametros, estos se los asignariamos de la siguiente forma:

param[1] = new SqlParameter("@Parametro2", SqlDbType.Char);
param[1].Value = "CA";

El código en c# quedaria de la siguiente forma:

SqlConnection conn = new SqlConnection("Server=localhost;Database=PUBS;Uid=sa;Pwd=as");
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

Enlaces relacionadas:

Código fuente del artículo 

Y esto es todo, feliz programming!!
Saludos
Alex.


Si te ha gustado el artículo compartelo en:        


Publicidad

También puede interesarte:

Limpiar datos de un combobox en winforms.

Limpiar datos de un combobox en winforms.

Por Alex, el 23/03/2010

Crear, copiar y borrar bases de datos SQL Server desde c#.

Crear, copiar y borrar bases de datos SQL Server desde c#.

Por Alex, el 07/03/2010

Escribir en un excel desde c#.

Escribir en un excel desde c#.

Por Alex, el 04/03/2010

Llenar un Repeater o DataList con un DataTable.

Llenar un Repeater o DataList con un DataTable.

Por Alex, el 29/12/2008

El evento SelectedIndexChanged no funciona

El evento SelectedIndexChanged no funciona

Por Alex, el 26/12/2008

Crear un DataSet vacío

Crear un DataSet vacío

Por Alex, el 26/12/2008


Añadir un comentarios:

Nombre:
Email: (no se publica el email)




SIGUENOS EN

ARCHIVO

Publicidad

.