Este Post vamos a explicar como poder recibir un dato en nuestra aplicación de Visual Studio al realizar un procedimiento en SQL Server a través de una consulta en LinqComo ejemplo, vamos a realizar la acción de insertar un campo en una tabla de nuestra base de datos. Esta, a su vez, nos enviará un dato a partir de la acción realizada. Los datos insertados serán rellenados en un formulario creado en Visual Studio.

Dicho procedimiento consistirá en insertar un alumno nuevo dentro de una clase y que nos devuelva la media de la nota de todos los alumnos. En este caso, la media es nuestro parámetro de salida. Los parámetros de salida son parámetros de referencia (ref).  Son variables que están referenciadas en la llamada y ocupan el mismo espacio de memoria, es decir, son el mismo objeto.

Para comenzar nos abriremos SQL Server con una base de datos que tengamos o nos crearemos una desde cero. En mi caso, tengo una base de datos llamada CLASE formada por la tabla ALUMNOS.
linq

Realizaremos el procedimiento INSERTAR_ALUMNO_OUT. En él declararemos todas las variables de los campos que vayamos a insertar en la tabla ALUMNOS y devolveremos el resultado de la media.

linq

Seleccionaremos nuestro procedimiento y lo ejecutaremos para guárdalo. Si actualizamos nuestra base de datos y nos vamos a la a la carpeta de Procedimientos Almacenados dentro de Programación encontraremos nuestro procedimiento almacenado.

Teniendo nuestro procedimiento, abriremos Visual Studio y nos crearemos un nuevo proyecto New>Proyect>ASP.NET>MVC llamado ProyectoTutorial

Deberemos conectar con nuestra base de datos para poder realizar las consultas. Para ello, nos iremos a la carpeta Models>Add>Class y añadiremos una clase del tipo Linq to SQL. Como nombre le pondremos ContextoClase, al hacerle doble click se abrirá un panel.

linq

En dicho panel tendremos una ventana llamada Explorer Server situada en el margen superior izquierdo y haremos click derecho para añadir una nueva conexión y conectarnos a nuestra base de datos.

linq
linq

Una vez conectados arrastraremos nuestra tabla ALUMNOS al centro del panel y nuestro procedimiento INSERTAR_ALUMNOS_OUT al segundo panel de la derecha. De este modo, nuestra tabla ALUMNOS la hemos convertido en una clase de Visual Studio y podremos manipularla a nuestro antojo.

linq

Ahora en la misma carpeta Models>Add>Class nos crearemos una clase llamada ModeloAlumno donde realizaremos los métodos para realizar las consultas a nuestro ContextoClase. Crearemos un constructor para declarar nuestro contexto. El contexto que hemos creado se llamara como clase ModeloDatosContextoClase automáticamente a partir del nombre que le hemos dado.
linq

Continuadamente realizaremos un método para poder consultar la tabla ALUMNOS y poder dibujarla en nuestra aplicación. Le pondremos como nombre GetAlumnos().

linq

El método retornará una lista de la clase alumnos.

linq

Realizaremos otro método llamado InsertarAlumno(). Este cojera la variables de entrada que se habrán escrito en el formulario que realizaremos mas adelante. Declararemos la variable que tendrá el valor de nuestro procedimiento INSERTAR_ALUMNOS_OUT() y será retornada en nuestro método.

linq

Pasaremos a realizar nuestra vista en la que crearemos el formulario encargado de enviar la información que deseamos insertar y pintar, en este caso, la tabla ALUMNOS y la media. Iremos a las carpeta haciendo click derecho View>Add>File y añadiremos una carpeta llamada ZonaAlumno y en ella una vista nueva llamada Index (ZonaAlumno>Add>View).  En la vista Index dibujaremos nuestro formulario de tipo post en HTML. Siempre que deseemos enviar información desde un formulario realizaremos un post y como botón un Submit.

linq

A continuación tendremos que crearnos un controlador para poder mostrar la vista Index y la tabla con la información de los alumnos, además del resultado de la media. Iremos a la carpeta Controller>Add>Controller y añadiremos un nuevo controlador llamado igual que nuestra carpeta vista, ZonaAlumnoController.

linq

El método ActionResult se encarga de mostrar la vista y devolver el dato que le especifiquemos. Nuestro controlador constará de dos métodos; un método de tipo Get y otro Post. El segundo se encargará de coger los parámetros enviados desde el formulario. Tenemos que llamar a nuestro modelo para poder utilizar los métodos que hemos creado anteriormente.

linq

linq

Por lo tanto, en el Post, declararemos las variables que vamos a recibir y ejecutaremos nuestro procedimiento INSERTAR_ALUMNO_OUT() y devolveremos la media y la tabla  ALUMNOS (con su nueva fila insertada) a nuestra vista Index.

linq

Por ultimo dibujaremos en nuestra vista la tabla ALUMNOS y nuestro ViewBag.Media con el resultado de la media. Para ello nos tenemos que traer el modelo de la lista ALUMNO y poder recibir los datos.

linq

Preguntaremos con un if el modelo es distinto de null para que no de error en la ejecución de la aplicación.
linq

Ejecutaremos y veremos el resultado de la aplicación.

 

Descripción: Recibir un dato en nuestra aplicación de Visual Studio al realizar un procedimiento en SQL Server a través de una consulta en Linq. Como ejemplo, vamos a realizar la acción de insertar un campo en una tabla de nuestra base de datos. Esta, a su vez, nos enviará un dato a partir de la acción realizada. Los datos insertados serán rellenados en un formulario creado en Visual Studio.

Autor: David Amador Monteiro

Curso: Microsoft MCSD Web Applications

Centro: Tajamar

Año académico: 2016-2017