Función para ejecutar un procedimiento almacenado
Continuando un poco con SQL Server y el post anterior sobre procedimientos almacenados, ahora dejo una pequeña funcion que permite recibir como parametros una cadena de textos para el nombre del procedimiento y un objeto hashtable para los parametros.
La idea es que esta funcion se guarde como un metodo dentro una clase para el proyecto que estamos realizando.
Actualmente esta clase ya cuenta con metodos para obtener un datareader, un escalar, una consulta non-query, etc. Ahora la idea es que acepte procedimientos almacenados.
Public Function ExecuteStoreProcedure(ByVal spname As String, ByVal params As Hashtable) As SqlDataReader
If connString.State = ConnectionState.Closed Then
connString.Open()
End If
Dim cmd As New SqlCommand(spname, connString)
cmd.CommandType = CommandType.StoredProcedure
For Each param As DictionaryEntry In params
cmd.Parameters.AddWithValue(param.Key, param.Value)
Next
Return cmd.ExecuteReader
End Function 'ExecuteDataSet
De esta manera creamos un objeto de la clase, mediante:
Dim db As New AccessDatabase
Dim oreader As SqlClient.SqlDataReader
Dim hashParams As New Hashtable
hashParams.Add("@page", 3)
hashParams.Add("@pagesize", 50)
oreader = db.ExecuteStoreProcedure("usp_getdestiniesbypage", hashParams)
Si lo deseamos podemos colocar un grid en nuestra pagina y vincular directamente el objeto datareader.
GridView1.DataSource = oreader
GridView1.DataBind()
Listo!
Comentarios
Me sirvió mucho!!
Gracias!