Cómo: Modificar datos en una base de datos usando LINQ (Visual Basic)
Las consultas de Language Integrated Query (LINQ) facilitan el acceso a la información de la base de datos y la modificación de los valores de esta.
En el ejemplo siguiente se muestra cómo crear una aplicación que recupera y actualiza información en una base de datos SQL Server.
En los ejemplos de este tema se usa la base de datos de ejemplo Northwind. Si no dispone de esta base de datos en el equipo de desarrollo, puede descargarla del Centro de descarga de Microsoft. Para obtener instrucciones, vea Descargar bases de datos de ejemplo.
Para crear una conexión a una base de datos
En Visual Studio, abra Explorador de servidores/Explorador de bases de datos, para lo cual, haga clic en Explorador de servidoresExplorador de bases de datos/ en el menú Ver.
Haga clic con el botón derecho en Conexiones de datos en Explorador de servidores/Explorador de bases de datos y luego haga clic en Agregar conexión.
Especifique una conexión válida a la base de datos de ejemplo Northwind.
Para agregar un proyecto con un archivo de LINQ to SQL
En el menú Archivo de Visual Studio, apunte a Nuevo y haga clic en Proyecto. Seleccione Aplicación de Windows Forms de Visual Basic como tipo de proyecto.
En el menú Proyecto , haga clic en Agregar nuevo elemento. Seleccione la plantilla de elemento Clases de LINQ to SQL.
Ponga al archivo el nombre
northwind.dbml
. Haga clic en Agregar. Se abre Object Relational Designer en el archivonorthwind.dbml
.
Para agregar tablas a fin de consultar y modificar en el diseñador
En Explorador de servidores/Explorador de bases de datos, expanda la conexión a la base de datos Northwind. Expanda la carpeta Tablas .
Si ha cerrado Object Relational Designer, puede volver a abrirlo. Para ello, haga doble clic en el archivo
northwind.dbml
que ha agregado anteriormente.Haga clic en la tabla Clientes y arrástrela al panel izquierdo del diseñador.
El diseñador crea un nuevo objeto Customer para el proyecto.
Guarde los cambios y cierre el diseñador.
Guarde el proyecto.
Para agregar código a fin de modificar la base de datos y mostrar los resultados
En el Cuadro de herramientas, arrastre un control DataGridView a la instancia predeterminada de Windows Forms del proyecto, Form1.
Cuando ha agregado tablas a Object Relational Designer, el diseñador ha agregado un objeto DataContext al proyecto. Este objeto contiene código que puede usar para tener acceso a la tabla Customers. También contiene código que define un objeto Customer local y una colección Customers para la tabla. El nombre del objeto DataContext del proyecto se determina en función del nombre del archivo .dbml. En este proyecto, el nombre del objeto DataContext es
northwindDataContext
.Puede crear una instancia del objeto DataContext en el código, así como consultar y modificar la colección Customers que especifica Object Relational Designer. Los cambios realizados en la colección Customers no se reflejan en la base de datos hasta que los envíe llamando al método SubmitChanges del objeto DataContext.
Haga doble clic en Windows Form, Form1, para agregar código al evento Load a fin de consultar la tabla Customers que se expone como una propiedad de DataContext. Agregue el siguiente código:
Private db As northwindDataContext Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs ) Handles MyBase.Load db = New northwindDataContext() RefreshData() End Sub Private Sub RefreshData() Dim customers = From cust In db.Customers Where cust.City(0) = "W" Select cust DataGridView1.DataSource = customers End Sub
Desde el Cuadro de herramientas, arrastre tres controles Button al formulario. Seleccione el primer control
Button
. En la ventana Propiedades, establezca la propiedadName
del controlButton
enAddButton
y la propiedadText
enAdd
. Seleccione el segundo botón y establezca la propiedadName
enUpdateButton
y la propiedadText
enUpdate
. Seleccione el tercer botón y establezca la propiedadName
enDeleteButton
y la propiedadText
enDelete
.Haga doble clic en el botón Agregar para agregar código a su evento
Click
. Agregue el siguiente código:Private Sub AddButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs ) Handles AddButton.Click Dim cust As New Customer With { .City = "Wellington", .CompanyName = "Blue Yonder Airlines", .ContactName = "Jill Frank", .Country = "New Zealand", .CustomerID = "JILLF"} db.Customers.InsertOnSubmit(cust) Try db.SubmitChanges() Catch ' Handle exception. End Try RefreshData() End Sub
Haga doble clic en el botón Actualizar para agregar código a su evento
Click
. Agregue el siguiente código:Private Sub UpdateButton_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs ) Handles UpdateButton.Click Dim updateCust = (From cust In db.Customers Where cust.CustomerID = "JILLF").ToList()(0) updateCust.ContactName = "Jill Shrader" updateCust.Country = "Wales" updateCust.CompanyName = "Red Yonder Airlines" updateCust.City = "Cardiff" Try db.SubmitChanges() Catch ' Handle exception. End Try RefreshData() End Sub
Haga doble clic en el botón Eliminar para agregar código a su evento
Click
. Agregue el siguiente código:Private Sub DeleteButton_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs ) Handles DeleteButton.Click Dim deleteCust = (From cust In db.Customers Where cust.CustomerID = "JILLF").ToList()(0) db.Customers.DeleteOnSubmit(deleteCust) Try db.SubmitChanges() Catch ' Handle exception. End Try RefreshData() End Sub
Presione F5 para ejecutar el proyecto. Haga clic en Agregar para agregar un registro nuevo. Haga clic en Actualizar para modificar el registro nuevo. Haga clic en Eliminar para eliminar el registro nuevo.