Condividi tramite


Procedura: Modificare i dati in un database tramite LINQ (Visual Basic)

Language-Integrated query LINQ semplificano l'accesso alle informazioni sul database e la modifica dei valori nel database.

Nell'esempio seguente viene illustrato come creare una nuova applicazione che recupera e aggiorna le informazioni in un database di SQL Server.

Gli esempi in questo articolo usano il database di esempio Northwind. Per ottenere il database, consultare Scaricare database di esempio.

Per creare una connessione a un database

  1. In Visual Studio aprire Esplora server/Esplora database facendo clic sul menu Visualizza e quindi seleziona Esplora server/Esplora database.

  2. Fare clic con il pulsante destro del mouse su Connessioni dati in Esplora server/Esplora databasee scegliere Aggiungi connessione.

  3. Specificare una connessione valida al database di esempio Northwind.

Per aggiungere un progetto con un file LINQ to SQL

  1. In Visual Studio, nel menu File puntare su Nuovo e quindi fare clic su Progetto. Selezionare Visual Basic Windows Form Application come tipo di progetto.

  2. Nel menu Progetto , fare clic su Aggiungi Nuovo Elemento. Selezionare il modello di elemento LINQ to SQL Classi.

  3. Denominare il file northwind.dbml. Fare clic su Aggiungi. Progettazione relazionale oggetti (O/R Designer) viene aperto per il file northwind.dbml.

Per aggiungere tabelle da interrogare e modificare nel designer

  1. In Esplora server e/Esplora database, espandi la connessione al database Northwind. Espandi la cartella Tabelle.

    Se è stata chiusa la finestra di progettazione O/R, è possibile riaprirla facendo doppio clic sul file northwind.dbml aggiunto in precedenza.

  2. Fare clic sulla tabella Customers e trascinarla nel riquadro sinistro della finestra di progettazione.

    Il designer crea un nuovo oggetto Cliente per il tuo progetto.

  3. Salvare le modifiche e chiudere la finestra di progettazione.

  4. Salva il progetto.

Per aggiungere codice per modificare il database e visualizzare i risultati

  1. Dalla casella degli strumenti trascinare un controllo DataGridView nel Windows Form predefinito per il progetto, Form1.

  2. Quando hai aggiunto tabelle al Designer O/R, il progettista ha aggiunto un oggetto DataContext al tuo progetto. Questo oggetto contiene codice che è possibile usare per accedere alla tabella Customers. Contiene anche codice che definisce un oggetto Customer locale e una collezione di Customers locali per la tabella. L'oggetto DataContext del tuo progetto è chiamato in base al nome del tuo file .dbml. Per questo progetto, l'oggetto DataContext è denominato northwindDataContext.

    È possibile creare un'istanza dell'oggetto DataContext nel codice e interrogare e modificare la raccolta dei clienti specificata dal progettista O/R. Le modifiche apportate all'insieme Customers non vengono aggiornate nel database finché non le invii chiamando il metodo SubmitChanges dell'oggetto DataContext.

    Fare doppio clic su Windows Form, Form1, per aggiungere codice all'evento Load per eseguire una query sulla tabella Customers esposta come proprietà del DataContext. Aggiungere il codice seguente:

    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. Dalla casella degli strumenti trascinare tre controlli Button nel form. Selezionare il primo controllo Button. Nella finestra Proprietà, impostare il Name del controllo Button su AddButton e il Text su Add. Selezionare il secondo pulsante e impostare la proprietà Name su UpdateButton e la proprietà Text su Update. Selezionare il terzo pulsante e impostare la proprietà Name su DeleteButton e la proprietà Text su Delete.

  4. Fare doppio clic sul pulsante aggiungi per aggiungere codice all'evento Click. Aggiungere il codice seguente:

    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. Fare doppio clic sul pulsante Update per aggiungere codice all'evento Click. Aggiungere il codice seguente:

    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. Fare doppio clic sul pulsante Elimina per aggiungere codice al suo evento Click. Aggiungere il codice seguente:

    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. Premere F5 per eseguire il progetto. Fare clic su Aggiungi per aggiungere un nuovo record. Fare clic su Aggiorna per modificare il nuovo record. Cliccare su Elimina per eliminare il nuovo record.

Vedere anche