Megosztás a következőn keresztül:


Útmutató: Adatok módosítása az adatbázisban a LINQ (Visual Basic) használatával

Language-Integrated lekérdezések (LINQ) megkönnyítik az adatbázis-információk elérését és az adatbázisban lévő értékek módosítását.

Az alábbi példa bemutatja, hogyan hozhat létre egy új alkalmazást, amely adatokat kér le és frissít egy SQL Server-adatbázisban.

A cikkben szereplő példák a Northwind mintaadatbázist használják. Az adatbázis beszerzéséhez lásd: Mintaadatbázisok letöltése.

Adatbázis-kapcsolat létrehozása

  1. A Visual Studióban nyissa meg Server Explorer/Database Explorer a Nézet menüre kattintva, majd válassza Server Explorer/Database Explorerlehetőséget.

  2. Kattintson a jobb gombbal Kiszolgálókezelő/ adatkapcsolatokra, majd kattintson Kapcsolat hozzáadásaparancsra.

  3. Adjon meg érvényes kapcsolatot a Northwind mintaadatbázishoz.

LinQ-val rendelkező projekt hozzáadása AZ SQL-fájlhoz

  1. A Visual Studióban a Fájl menüben mutasson a Új elemre, majd kattintson a Projektparancsra. Projekttípusként válassza a Visual Basic Windows Forms-alkalmazás lehetőséget.

  2. A Project menüben kattintson az Új elemmenüpontra. Válassza ki a LINQ-t az SQL-osztályok elemsablonhoz.

  3. Nevezze el a fájlt northwind.dbml. Kattintson a hozzáadása gombra. Az Objektum-relációs tervező (O/R Designer) megnyílt a northwind.dbml fájl számára.

Táblák hozzáadása a lekérdezés és módosítás érdekében a tervezőben

  1. A Server Explorer/Database Explorerterületen bontsa ki a Northwind-adatbázishoz való kapcsolatot. Nyissa meg a Táblák mappát.

    Ha bezárta az O/R Designert, újra megnyithatja a korábban hozzáadott northwind.dbml fájlra duplán kattintva.

  2. Kattintson a Vevők táblára, és húzza a tervező bal oldali paneljára.

    A tervező létrehoz egy új ügyfélobjektumot a projekthez.

  3. Mentse a módosításokat, és zárja be a tervezőt.

  4. Mentse a projektet.

Kód hozzáadása az adatbázis módosításához és az eredmények megjelenítéséhez

  1. A eszközkészlet-ből húzza a DataGridView vezérlőt az alapértelmezett Windows-űrlapjára, a Form1-re.

  2. Amikor táblákat adott hozzá az O/R Designerhez, a tervező hozzáadott egy DataContext objektumot a projekthez. Ez az objektum olyan kódot tartalmaz, amellyel elérheti a Vevők táblát. Olyan kódot is tartalmaz, amely meghatároz egy helyi Ügyfél objektumot és egy Ügyfélgyűjteményt a táblához. A projekt DataContext objektuma a .dbml fájl neve alapján lesz elnevezve. Ebben a projektben a DataContext objektum neve northwindDataContext.

    Létrehozhatja a DataContext objektum egy példányát a kódban, és lekérdezheti és módosíthatja az O/R Designer által megadott Ügyfelek gyűjteményt. Az Ügyfelek gyűjteményben végzett módosítások mindaddig nem jelennek meg az adatbázisban, amíg el nem küldi őket az SubmitChanges objektum DataContext metódusának meghívásával.

    Kattintson duplán a Windows Form, Form1 űrlapra, hogy kódot adjon a Load eseményhez az DataContexttulajdonságaként közzétett Ügyfelek tábla lekérdezéséhez. Adja hozzá a következő kódot:

    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. Az eszközkészlet-ből húzzon három Button vezérlőt az űrlapra. Válassza ki az első Button vezérlőelemet. A Tulajdonságok ablakban állítsa be a Name vezérlő ButtonAddButton-re, és a Text pedig Addértékre. Válassza a második gombot, és állítsa a Name tulajdonságot UpdateButton, a Text tulajdonságot pedig Update. Válassza a harmadik gombot, és állítsa a Name tulajdonságot DeleteButton, a Text tulajdonságot pedig Delete.

  4. Dupla kattintással a hozzáadása gombra adjon hozzá kódot annak Click eseményéhez. Adja hozzá a következő kódot:

    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. A Frissítés gombra duplán kattintva kódot adhat hozzá a Click eseményhez. Adja hozzá a következő kódot:

    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. Kattintson duplán a Törlés gombra, hogy kódot adjon hozzá a(z) Click eseményhez. Adja hozzá a következő kódot:

    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. Nyomja le az F5 billentyűt a projekt futtatásához. Új rekord hozzáadásához kattintson a hozzáadása elemre. Kattintson frissítése gombra az új rekord módosításához. Kattintson Törlés elemre az új rekord törléséhez.

Lásd még: