Cmo: Consultar una base de datos usando LINQ (Visual Basic)
Page 1 of 4
Cmo: Consultar una base de datos usando LINQ (Visual Basic)
Visual Studio 2008 Actualizacin: noviembre 2007 Language-Integrated Query (LINQ) simplifica el acceso a la informacin de las bases de datos y la ejecucin de consultas. En el ejemplo siguiente se muestra cmo crear una nueva aplicacin que realiza consultas en una base de datos de SQL Server. En los ejemplos de este tema se usa la base de datos de ejemplo Northwind. Si no tiene instalada la base de datos de ejemplo Northwind en el equipo de desarrollo, puede descargarla desde el sitio web del Centro de descarga de Microsoft1. Para obtener instrucciones, vea Descargar bases de datos de ejemplo (LINQ to SQL)2.
Nota: Es posible que su equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio incluidos en las instrucciones siguientes. La edicin de Visual Studio que se tenga y la configuracin que se utilice determinan estos elementos. Para obtener ms informacin, vea Valores de configuracin de Visual Studio3.
Para crear una conexin a una base de datos
1. En Visual Studio, haga clic en Explorador de servidores/Explorador de bases de datos en el men Ver para abrir el Explorador de servidores/Explorador de bases de datos. 2. En el Explorador de servidores/Explorador de bases de datos, haga clic con el botn secundario del mouse en Conexiones de datos y, a continuacin, haga clic en Agregar conexin. 3. Especifique una conexin vlida a la base de datos de ejemplo Northwind.
Para agregar un proyecto que contiene un archivo de LINQ to SQL
1. En el men Archivo de Visual Studio, elija Nuevo y, a continuacin, haga clic en Proyecto. Seleccione Aplicacin de Windows Forms de Visual Basic como tipo de proyecto. 2. En el men Proyecto, haga clic en Agregar nuevo elemento. Seleccione la plantilla de elementos Clases de LINQ to SQL. 3. Asigne al archivo el nombre northwind.dbml. Haga clic en Agregar. Se abre el Diseador relacional de objetos para el archivo northwind.dbml.
Para agregar tablas al Diseador relacional de objetos
http://msdn.microsoft.com/es-es/library/bb907138(VS.90,printer).aspx
23/10/2011
Cmo: Consultar una base de datos usando LINQ (Visual Basic)
Page 2 of 4
1. En el Explorador de servidores/Explorador de bases de datos, expanda la conexin a la base de datos Northwind. Expanda la carpeta Tablas. Si ha cerrado el Diseador relacional de objetos, puede volver a abrirlo haciendo doble clic en el archivo northwind.dbml que agreg anteriormente. 2. Haga clic en la tabla Customers y arrstrela hasta el panel izquierdo del diseador. Haga clic en la tabla Orders y arrstrela hasta el panel izquierdo del diseador. El diseador crea nuevos objetos Customer y Order para el proyecto. Observe que el diseador detecta automticamente las relaciones entre las tablas y crea propiedades secundarias para los objetos relacionados. Por ejemplo, IntelliSense mostrar que el objeto Customer tiene una propiedad Orders para todos los pedidos relacionados con ese cliente. 3. Guarde los cambios y cierre el diseador. 4. Guarde el proyecto.
Para agregar cdigo de consulta a la base de datos y mostrar los resultados
1. Desde el Cuadro de herramientas, arrastre un control DataGridView4 hasta el formulario Windows Forms predeterminado del proyecto, Form1. 2. Haga doble clic en Form1 para agregar cdigo al evento Load del formulario. 3. Cuando agreg tablas al Diseador relacional de objetos, ste agreg un objeto DataContext5 al proyecto. Este objeto contiene el cdigo necesario para obtener acceso a esas tablas y a los objetos individuales y colecciones de cada tabla. El nombre del objeto DataContext5 del proyecto se basa en el nombre del archivo .dbml. En este proyecto, el objeto DataContext5 se denomina northwindDataContext. Puede crear una instancia de DataContext5 en el cdigo y consultar las tablas especificadas por el Diseador relacional de objetos. Agregue el cdigo siguiente al evento Load para consultar las tablas que se exponen como propiedades del contexto de datos.
VB Dim db AsNew northwindDataContext Dim londonCusts = From cust In db.Customers _ Where cust.City = "London" _ Select cust DataGridView1.DataSource = londonCusts
4. Presione F5 para ejecutar el proyecto y ver los resultados. 5. A continuacin, se proporcionan algunas consultas adicionales que puede probar:
http://msdn.microsoft.com/es-es/library/bb907138(VS.90,printer).aspx
23/10/2011
Cmo: Consultar una base de datos usando LINQ (Visual Basic)
Page 3 of 4
VB Dim londonCustOrders = From cust In db.Customers, _ ord In cust.Orders _ Where cust.City = "London" _ OrderBy ord.OrderID _ Select cust.City, ord.OrderID, ord.OrderDate DataGridView1.DataSource = londonCustOrders
...
Dim custs = From cust In db.Customers _ Where cust.Country = "France" _ And (cust.CompanyName.StartsWith("F") _ Or cust.CompanyName.StartsWith("V")) _ OrderBy cust.CompanyName _ Select cust.CompanyName, cust.City DataGridView1.DataSource = custs
Vea tambin
Tareas Tutorial: Crear clases de LINQ to SQL (Diseador relacional de objetos)6 Conceptos Mtodos DataContext (Diseador relacional de objetos)7 Otros recursos LINQ en Visual Basic8 Consultas (Visual Basic)9 LINQ to SQL10
Tabla de vnculos
1 2 3 4 5 6
http://go.microsoft.com/fwlink/?LinkID=98088 http://msdn.microsoft.com/es-es/library/bb399411(v=VS.90).aspx http://msdn.microsoft.com/es-es/library/zbhkx167(v=VS.90).aspx http://msdn.microsoft.com/es-es/library/system.windows.forms.datagridview(v=VS.90).aspx http://msdn.microsoft.com/es-es/library/system.data.linq.datacontext(v=VS.90).aspx http://msdn.microsoft.com/es-es/library/bb384428(v=VS.90).aspx
http://msdn.microsoft.com/es-es/library/bb907138(VS.90,printer).aspx
23/10/2011
Cmo: Consultar una base de datos usando LINQ (Visual Basic)
Page 4 of 4
7 8 9
http://msdn.microsoft.com/es-es/library/bb384566(v=VS.90).aspx http://msdn.microsoft.com/es-es/library/bb385100(v=VS.90).aspx http://msdn.microsoft.com/es-es/library/bb384830(v=VS.90).aspx http://msdn.microsoft.com/es-es/library/bb386976(v=VS.90).aspx
10
Contenido de la comunidad
2011 Microsoft. Reservados todos los derechos.
http://msdn.microsoft.com/es-es/library/bb907138(VS.90,printer).aspx
23/10/2011