Hemos llegado al final de este mini tutorial, por tanto le muestro los enlaces a los Capítulos Anteriores.:
Link al Capitulo I: Tutorial- Crear una Aplicacion Web – Principiantes
Link al Capitulo II: Tutorial- Crear una Aplicacion Web – Principiantes Parte II
Link al Capitulo III: Tutorial- Crear una Aplicacion Web - Principiantes Parte III
En este punto se tratara con LINQ para así mostrarle lo último en tecnología ya que se nos aproxima VS2010 y hay muchas cosas más interesante que se debería mostrar J
LINQ (Lenguage INtegrated Query), es una tecnología bastante interesante en ella podemos establecer consultas de manera directa a la base de datos partiendo de un simple query, debemos tener en cuenta que no solo base de datos podemos hacer esto si no también a objetos (LINQ to Objects), XML (LINQ to XML), Entidades y otros manejadores (LINQ to ADO.net), por ello LINQ se fortalece cada vez mas permitiendo tener una especie de lenguaje único de consulta para las diferentes formas de obtención de datos.
La definición de la Librería MSDN lo define de esta manera: “Language-Integrated Query (LINQ) es un conjunto de características en Visual Studio 2008 que agrega eficaces capacidades de consulta a la sintaxis de los lenguajes C# y Visual Basic. LINQ incluye patrones estándar y de fácil aprendizaje para consultar y actualizar datos, y su tecnología se puede extender para utilizar potencialmente cualquier tipo de almacén de datos. Visual Studio 2008 incluye ensamblados de proveedores para LINQ que habilitan el uso de LINQ con colecciones de .NET Framework, bases de datos de SQL Server, conjuntos de datos de ADO.NET y documentos XML.”
Como hemos venido trabajando en el este tutorial vamos a agregar a nuestro sitio web un nuevo Elemento->Clases de LINQ to SQL el cual lo he llamado dcAdventureWorks.dbml debido a que estaremos utilizando la base de datos AdventureWorks así como resalto en la siguiente imagen.
Luego de dar aceptar nos debe aparecer la siguiente pregunta al cual le daremos a la Opción SI.
Luego nos saldrá un espacio en blanco donde nos pide ver el Explorador de Servidores o el cuadro de herramientas y así poder arrastrar los objetos (que para nuestro caso serian las tablas de la base de datos AdventureWorks) que deseamos ver en nuestro DataClases por ello seleccionaremos Explorador de Servidores y en el deben aparecer listado los Servidores de base de datos que se encuentren configurado de otras aplicaciones J de estar vacía que es la forma más tradicional de verlo entonces haremos los siguientes pasos para visualizar nuestra base de datos.
1. Seleccionaremos el icono amarillo con forma de base de datos y un + en la parte superior como se indica en la imagen siguiente, esto es para conectarnos al servidor de base de datos.
2. Aparecerá un cuadro como muchas maneras de conectarnos a la base de datos y por ello debemos seleccionar la siguiente. Si es de su preferencia puede dejar la casilla “Utilizar siempre esta selección” por si siempre utilizara esa manera para conectarse a una fuente de datos.
3. Si se ha equivocado al momento de seleccionar el Origen de datos (Paso anterior) puede reajustar la selección con darle al botón Cambiar (ver la siguiente imagen), se la selección es la correcta usted debe indicar el nombre del servidor de SQL Server donde está la base de datos a utilizar en mi caso estoy usando un Motor de SQL Server 2005 Developer Editions y por ello mi Nombre servidor es (local)\SQL2005 en sus casos si está utilizando la versión Express seria de la siguiente manera (local)\SQLExpress, luego según las características que hallas definido al momento de instalar el servidor de base de datos pudieras usar una autenticación de modo Windows o de Modo SQL Server y de allí puedas seleccionar tu base de datos.
Nota: por si no sabes quién es (local) vendría siendo tu maquina por lo que en vez de usar (local) pudieras utilizar el nombre de tu Maquina, el \ServidorSQL seria la instancia donde fue instalado el servidor de base de datos, es decir seria esta nomemblecatura: {TUMAQUINA\INSTANCIA_SERVIDOR_SQL}. Te recomiendo hacer una prueba de conexión antes de darle aceptar para validar que te puedes conectar sin problemas.
4. Ahora seleccionaremos todas las tablas de la base de datos o sencillamente podemos usar las tablas que usaremos para el tutorial y luego de seleccionarlas la vamos arrastrando al DataClases donde las tablas son StateProvince y CountryRegion.
Nota: Fíjense la sección remarcada, allí arrastraríamos los StoreProcedures y Funciones que estén definidos en la base de datos lo cual en código podremos invocarlos como Métodos, mientras las tablas la invocaremos como Clases.
Ya con esos puntos podemos empezar a lanzar código J, pero antes de empezar debo explicarle como es la sintaxis de LINQ para que así puedan seguirme, sé que es mucho bla bla bla pero créanme es lo correcto. La sintaxis tradicional y quizás la más utilizada de LINQ es la siguiente:
La forma de trabajar con LINQ es englobando la consulta y almacenando todo en una variable de tipo “var” (en C# y en VB es DIM sin la asignación de tipo de datos), veamos como se ve lo mostrado en la imagen anterior en código:
C#:
var consulta = from country in db.CountryRegion
select country;
VB:
Dim consulta = From country In db.CountryRegion Select country
Lo que equivale a una consulta al estilo SQL:
Select * From Person.CountryRegion
Si lo ven no es tan difícil al contrario nos facilita el poder manejar objetos, xml y otros fuentes de datos basándonos en un solo esquema, facilitándonos y/o ahorrándonos el tener que aprender cómo obtener los datos y cuál sería su sintaxis J.
Como si eso no fuese todo también podemos hacer consultas a la base de datos como si fuesen métodos así como se muestra en el ejemplo siguiente:
C#:
var consulta = db.CountryRegion;//.Select(c => new { c.Name, c.StateProvince });
VB:
Dim consulta = db.CountryRegion
Es decir que quedaria como la siguiente imagen J:
Aquí le dejo otra imagen para notar la forma como se realiza las consultas con LINQ con ambos lenguajes (VB y C#) y que el Visual Studio 2008 nos brinda todo el soporte necesario.
Ahora teniendo claro la forma de realizar consultas en LINQ podremos comenzar con agregar una nueva página seleccionando la MasterPage creada en los capitulos anteriores y la llamaremos infoCountryRegion.aspx en el solo tendremos el GridView que llamaremos gvCountryRegion y le asignaremos en su propiedad el SkinID=”SkinGridView” que mostrara los datos arrojados de las consultas que realizaremos a la tabla CountryRegion.
En la hoja de código del formulario web (infoCountryRegion.aspx.cs) vamos a crear un método que llamaremos “LlenarGrid()” dicho método nos servirá para llenar el GridView la carga de la pagina en futuras mejoras al gridview como la paginación y selección de filas.
C#
/// <summary>
/// Metodo que usaremos para extaer la informacion de la Base de Datos y llenar el GridView
/// </summary>
private void LlenarGrid()
{
//Obtenemos la cadena de conexion del archivo de configuracion (Web.config)
//Y lo alamcenamos en una variable de tipo string
string sConfig = ConfigurationManager.ConnectionStrings["AdventureWorksConnectionString"].ConnectionString;
//Declaramos un tipo DataContext a partir del DataClases que agregamos al proyect y le
//pasamos en el parametro la cadena conexion almacenada en la variable sConfig
dcAdventureWorksDataContext db = new dcAdventureWorksDataContext(sConfig);
//Se construye la Consulta simple para extraer datos de la Tabla CountryRegion
var consulta = from c in db.CountryRegion
select c;
//Lugar donde mostraremos la informacion consultada a la tabla
gvCountryRegion.DataSource = consulta;
gvCountryRegion.DataBind();
}
VB
''' <summary>
''' Metodo que usaremos para extaer la informacion de la Base de Datos y llenar el GridView
''' </summary>
Sub LlenarGrid()
'Obtenemos la cadena de conexion del archivo de configuracion (Web.config)
'Y lo alamcenamos en una variable de tipo string
Dim sConfig As String = ConfigurationManager.ConnectionStrings("AdventureWorksConnectionString").ConnectionString
'Declaramos un tipo DataContext a partir del DataClases que agregamos al proyect y le
'pasamos en el parametro la cadena conexion almacenada en la variable sConfig
Dim db As dcAdventureWorksDataContext = New dcAdventureWorksDataContext(sConfig)
'Se construye la Consulta simple para extraer datos de la Tabla CountryRegion
Dim consulta = From country In db.CountryRegion Select country
'Lugar donde mostraremos la informacion consultada a la tabla
gvCountryRegion.DataSource = consulta
gvCountryRegion.DataBind()
End Sub
Mientras que en el Page_Load de la página escribiremos la invocación del método recién creado colocando una validación de que la Página sea diferente a un PostBack por lo que quedaría así en el siguiente código:
C#
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
LlenarGrid();
}
}
VB
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If (IsPostBack = False) Then
LlenarGrid()
End If
End Sub
Ahora debemos ubicarnos en el GridView y en sus propiedades ubicaremos la que dice “AllowPagin” y lo cambiamos a “True” (su Paginación de manera predeterminada es de 10 registro si gustan pueden cambiar este valor en la propiedad PageSize) luego manteniendo aun seleccionado el GridView nos ubicamos en la sección de Eventos y le damos doble clic al evento y nos llevara a la hoja de código de la página. Por cierto si aún no saber cómo ubicar la sección de eventos pues ubíquense en las propiedades del GridView y en la parte superior verán un Rayo allí le darán clic y verán todos los eventos disponibles para el GridView como se muestra en la siguiente imagen:
Ok luego de que sean llevado a la hoja de código colocaran las siguientes líneas de código dentro del evento que acabamos de crear.
VB:
Protected Sub gvCountryRegion_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles gvCountryRegion.PageIndexChanging
gvCountryRegion.PageIndex = e.NewPageIndex
'Aqui invocamos al metodo que creamos al inicio que es LlenarGrid
LlenarGrid()
End Sub
C#:
protected void gvCountryRegion_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
gvCountryRegion.PageIndex = e.NewPageIndex;
//Aqui invocamos al metodo que creamos al inicio que es LlenarGrid
LlenarGrid();
}
Y con esto damos por terminado esta serie de mini tutoriales :) prometo incorporar mas artículos que se relacionen con este tutorial.
Tags: ASP.net -
C# -
Csharp -
Desarrollo -
HTML -
LINQ -
net Framework -
SQL Server -
Tutoriales -
Trucos -
Tips -
Visual Studio -
Web -
VB
Te ha gustado este Post?
Pues seria genial si pudieras compartirlo con otras personas y asi llegarle a mas personas que pudiera ser util esta publicación. Animate a compartir