Ejecutar Stored Procedure en SQL Server 2005.
Respondiendo a una peticiones, veremos como mandar a llamar a un Stored Procedure en Sql server 2005, es muy sencillo, anteriormente habia puesto la conexion a Sql server 2005 y no varia mucho, primero necesitamos crear nuestro SP desde el Management studio del SQL, como por ejemplo:
CREATE PROCEDURE ListarAlumnos
AS
Select * From Alumno
Ahora para mandarlo a llamar ponemos en el siguiente código, en el cual abrimos la conexion, especificamos que es la llamada a un SP, el nombre del SP, y llenamos el datagridview:
----------------------------------------------------------
SqlConnection sqlcnn = new SqlConnection();
string CadenaDeConexion;
SqlCommand sqlcmd = new SqlCommand();
SqlDataReader reader;
CadenaDeConexion =
"data source=127.0.0.1,1433;" +
"Initial Catalog=MyDataBase;" +
"User ID=MyID;" +
"Password=PASSWORD;";
sqlcnn.ConnectionString = CadenaDeConexion;
sqlcnn.Open();
sqlcmd.CommandType = CommandType.StoredProcedure;
sqlcmd.CommandText = "ListarAlumnos";
sqlcmd.Connection = sqlcnn;
reader = sqlcmd.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(reader);
this.dataGridView1.DataSource = dt;
this.dataGridView1.Refresh();
sqlcnn.Close();
----------------------------------------------------------
De esta forma llenaremos nuestro dataGridWiev con el contenido de nuestra tabla.
Para usarlo con parametros solo hay que agregarle unas cuantas lineas mas en las que especificamos los parametros, primero creamos un SP:
CREATE PROCEDURE ListarAlumnos2
@nombre char(10)
AS
Select * From Alumno where nombre = @nombre
y nuestro codigo en C# quedaria asi;
----------------------------------------------------------
SqlConnection sqlcnn = new SqlConnection();
string CadenaDeConexion;
SqlCommand sqlcmd = new SqlCommand();
SqlDataReader reader;
CadenaDeConexion =
"data source=127.0.0.1,1433;" +
"Initial Catalog=MyDataBase;" +
"User ID=MyID;" +
"Password=PASSWORD;";
sqlcnn.ConnectionString = CadenaDeConexion;
sqlcnn.Open();
SqlParameter[] param = new SqlParameter[1];
param[0] = new SqlParameter("@nombre", SqlDbType.Char);
param[0].Value = "Lorena";
sqlcmd.CommandType = CommandType.StoredProcedure;
sqlcmd.CommandText = "ListarAlumnos2";
sqlcmd.Connection = sqlcnn;
sqlcmd.Parameters.AddRange(param);
reader = sqlcmd.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(reader);
this.dataGridView1.DataSource = dt;
this.dataGridView1.Refresh();
sqlcnn.Close();
----------------------------------------------------------
Solamente le agregamos los parametros que enviaremos y el valor de cada uno. Espero haber sido bastante claro, este ejemplo esta bien detallado y funcional, cualquier duda dejarla y las aclaro. Saludos!!.