Por cuestiones de tiempo 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, tranquilos también daré algunos tips de cómo se puede realizar a la manera de Visual Studio 2005 y versiones anteriores 🙂
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: {TUMAQUINAINSTANCIA_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.CountryRegionSi 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 quedaría como la siguiente imagen 🙂
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 el capitulo anterior y la llamaremos infoCountryRegion.aspx en el solo tendremos el GridView que llamaremos gvCountryRegion 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 un 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
Hasta el siguiente post que será la continuación de este punto (Consultas)
Holla ! Este artículo de como crear una aplicación Web me interesó mucho, porque percebi que las lenguages de programación se parecen en el código y por eso és más fácil entender.