lunes, 6 de enero de 2014

Cómo llamar a procedimientos almacenados de SQL Server en ASP.NET

En este artículo se muestra cómo utilizar ASP.NET y ADO.NET con Visual Basic .NET para crear un procedimiento almacenado de Microsoft SQL Server y llamarlo con un parámetro de entrada y otro de salida.
El código de ejemplo de este artículo comprueba en primer lugar si el procedimiento almacenado que va a crear existe en la base de datos. Si no existe, crea uno que emplea un parámetro para buscar en la tabla Authors por apellidos y devuelve las filas coincidentes y el número de filas devueltas en un parámetro de salida.
En este artículo también se muestra cómo crear un Web Form que proporciona una interfaz de usuario sencilla. El Web Form contiene los elementos siguientes:
    • ·         Un cuadro de texto en el que el usuario escribe la condición de búsqueda.
    • ·         Un control DataGrid que muestra los resultados de la búsqueda.
    • ·         Un control Label que muestra el número de registros devueltos.
    • ·         Un control Button que llama al procedimiento almacenado cuando se hace clic en el botón.

Requisitos
En la lista siguiente se describen el hardware, el software, la infraestructura de red y los Service Packs requeridos:
·         Microsoft SQL Server versión 7.0 o posterior
·         Microsoft Visual Studio .NET
·         Microsoft Visual Basic .NET
·         Permisos para crear el procedimiento almacenado en la base de datos
En este artículo se da por supuesto que está familiarizado con los temas siguientes:
·         Procedimientos almacenados de SQL Server
Crear un proyecto ASP.NET y agregar controles
En esta sección, creará un proyecto ASP.NET y la interfaz básica de usuario. Tenga en cuenta que en estos pasos se utiliza código de Microsoft Visual Basic .NET. Para crear el proyecto, siga estos pasos:

1.       Haga clic en Inicio, seleccione Programas, Microsoft Visual Studio .NET y, a continuación, haga clic en Microsoft Visual Studio .NET.
2.       En la página de inicio de Visual Studio .NET, haga clic en Nuevo proyecto.
3.       En el cuadro de diálogo Nuevo proyecto, haga clic en la opción Proyectos de Visual Basic bajo Tipos de proyecto y, a continuación, haga clic en Aplicación Web ASP.NET bajo Plantillas.
4.       En el cuadro Nombre, escriba un nombre para la aplicación Web y haga clic en Aceptar.
5.       Agregue los siguientes controles de servidor al Web Form y establezca las propiedades indicadas en la tabla:


6.       Arrastre un control de servidor DataGrid desde el cuadro de herramientas al Web Form y establezca la propiedad Name como GrdAuthors.
7.       Haga clic con el botón secundario del mouse (ratón) en la cuadrícula y, a continuación, haga clic en Autoformat.
8.       Haga clic en Professional 1 para el esquema y haga clic en Aceptar.

Crear el procedimiento almacenado GetAuthorsByLastName

Utilice el siguiente código Transact-SQL para crear el procedimiento almacenado:          
Este código incluye dos parámetros: @au_lname y @RowCount. @au_lname es un parámetro de entrada que obtiene la cadena de búsqueda para realizar una búsqueda "like" en la tabla Authors. @RowCount es un parámetro de salida que utiliza la variable @@ROWCOUNT para obtener las filas afectadas.

Crear y ejecutar el procedimiento almacenado

Para tener acceso a las bases de datos de SQL Server, tiene que importar el espacio de nombres System.Data.SqlClient, que proporciona nuevos objetos como SqlDataReader y SqlDataAdapter. Puede utilizar SqlDataReader para leer una secuencia de filas sólo hacia delante en una base de datos de SQL Server. DataAdapter representa un conjunto de comandos de datos y una conexión de base de datos que se puede utilizar para llenar el objeto DataSet y actualizar una base de datos de SQL Server.


ADO.NET también presenta el objeto DataSet, que es una representación de datos residente en memoria que ofrece un modelo de programación relacional coherente sin importar el origen de los datos. En el código de esta sección se emplean todos estos objetos.
1.       Haga doble clic en el Web Form.
2.  Agregue el código siguiente a la sección Declaration del Web Form, que aparece en la parte superior de la ventana de código:
                              
3.  Para asegurarse de que el procedimiento almacenado existe y crear otro nuevo, utilice un objeto SqlCommand con un objeto SqlDataReader. Puede emplear SqlCommand para ejecutar cualquier comando SQL contra la base de datos. A continuación, llame al método ExecuteReader de SqlCommand para devolver SqlDataReader, que contiene las filas coincidentes de la consulta.                     

4.       Llame al procedimiento almacenado en el evento Click del botón btnGetAuthors y utilice el objeto SqlDataAdapterpara ejecutar el procedimiento almacenado. Tiene que crear parámetros para el procedimiento almacenado y anexarlo a la colección Parameters del objeto SqlDataAdapter.


5.       En el Explorador de soluciones, haga clic con el botón secundario del mouse (ratón) en la página .aspx y, a continuación, haga clic en Establecer como página de inicio.
6.       Guarde el proyecto y, después, haga clic en Iniciar en Visual Studio .NET. Observe que el proyecto se compila y que se ejecuta la página predeterminada.
7.       Escriba los apellidos del autor en el cuadro de texto y haga clic en Obtener autores. Se llama al procedimiento almacenado y las filas devueltas llenan el control DataGrid.

Puede proporcionar cadenas de búsqueda de tipo SQL Server como G%, que devuelve los todos los autores cuyos apellidos comienzan con la letra "G."
Solución de problemas
·         Si no puede conectar a la base de datos, asegúrese de que ConnectionString apunta correctamente al servidor que ejecuta SQL Server.

·         Si puede conectar a la base de datos, pero tiene problemas al intentar crear el procedimiento almacenado, asegúrese de que dispone de los permisos adecuados para crear procedimientos almacenados en la base de datos a la que se está conectando.

0 comentarios:

Publicar un comentario