Compartir a través de


Cómo: Modificar datos en una base de datos mediante LINQ (Visual Basic)

Language-Integrated Las consultas LINQ facilitan el acceso a la información de la base de datos y modifican sus valores.

En el ejemplo siguiente se muestra cómo crear una nueva aplicación que recupera y actualiza información en una base de datos de SQL Server.

En los ejemplos de este artículo se usa la base de datos de ejemplo Northwind. Para obtener la base de datos, consulte Descarga de bases de datos de ejemplo.

Para crear una conexión a una base de datos

  1. En Visual Studio, abra Explorador de servidores/Explorador de bases de datos haciendo clic en el menú Ver y, a continuación, seleccione Explorador de servidores/Explorador de bases de datos.

  2. Haga clic con el botón derecho en Conexiones de Datos en Explorador de Servidores/Explorador de Bases de Datosy seleccione Agregar Conexión.

  3. Especifique una conexión válida a la base de datos de ejemplo Northwind.

Para agregar un proyecto con un archivo LINQ to SQL

  1. En el menú Archivo de Visual Studio, apunte a Nuevo y haga clic en Proyecto. Seleccione Visual Basic Aplicación de Windows Forms como tipo de proyecto.

  2. En el menú de proyecto , haga clic en Agregar Nuevo Elemento. Seleccione la plantilla de elemento Clases de LINQ to SQL.

  3. Asigne al archivo el nombre northwind.dbml. Haga clic en Agregar. El Diseñador relacional de objetos (O/R Designer) se abre para el archivo northwind.dbml.

Para agregar tablas a fin de consultar y modificar en el diseñador

  1. 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 el Diseñador de O/R, puede volver a abrirlo haciendo doble clic en el archivo northwind.dbml que agregó anteriormente.

  2. 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.

  3. Guarda los cambios y cierra el diseñador.

  4. Guarde el proyecto.

Para agregar código para modificar la base de datos y mostrar los resultados

  1. En el cuadro de herramientas , arrastre un control DataGridView al formulario predeterminado de Windows Forms para tu proyecto, Form1.

  2. Al agregar tablas al Diseñador de O/R, el diseñador agregó un objeto DataContext al proyecto. Este objeto contiene código que se puede usar para acceder a la tabla Customers. También contiene código que define un objeto Customer local y una colección Customers para la tabla. El objeto DataContext del proyecto se denomina en función del nombre del archivo .dbml. Para este proyecto, el objeto DataContext se denomina northwindDataContext.

    Puede crear una instancia del objeto DataContext en el código y consultar y modificar la colección Customers especificada por el Diseñador de O/R. 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 código siguiente:

    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
    
  3. Desde el cuadro de herramientas de , arrastre tres controles Button al formulario. Seleccione el primer control Button. En la ventana Propiedades, establezca la propiedad Name del control Button en AddButton y la propiedad Text en Add. Seleccione el segundo botón y establezca la propiedad Name en UpdateButton y la propiedad Text en Update. Seleccione el tercer botón y establezca la propiedad Name en DeleteButton y la propiedad Text en Delete.

  4. Haga doble clic en el botón Agregar para agregar código a su evento Click. Agregue el código siguiente:

    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
    
  5. Haga doble clic en el botón Actualizar para agregar código a su evento Click. Agregue el código siguiente:

    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
    
  6. Haga doble clic en el botón Eliminar para agregar código a su evento Click. Agregue el código siguiente:

    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
    
  7. Presione F5 para ejecutar el proyecto. Haga clic en Agregar para agregar un nuevo registro. Haga clic en Actualizar para modificar el nuevo registro. Haga clic en Eliminar para eliminar el nuevo registro.

Consulte también