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


Útmutató: Adatbázis lekérdezése LINQ használatával (Visual Basic)

Language-Integrated lekérdezés (LINQ) megkönnyíti az adatbázis-információk elérését és a lekérdezések végrehajtását.

Az alábbi példa bemutatja, hogyan hozhat létre olyan új alkalmazást, amely lekérdezéseket hajt végre egy SQL Server-adatbázison.

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.

Jegyzet

Előfordulhat, hogy a számítógép különböző neveket vagy helyeket jelenít meg a Visual Studio felhasználói felületének egyes elemeihez az alábbi utasításokban. Ezeket az elemeket a Visual Studio-kiadás és a használt beállítások határozzák meg. További információért lásd: Az IDE személyre szabása.

Adatbázis-kapcsolat létrehozása

  1. Nyissa meg Server Explorer/Database Explorer a Nézet menü /Database Explorer parancsára kattintva.

  2. Kattintson a jobb gombbal a Adatkapcsolatok elemre a Server Explorer/Database Explorer ablakban, majd kattintson a Kapcsolat hozzáadásaparancsra.

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

LINQ-t tartalmazó 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 elem hozzáadásagombra. 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 Object Relational Designer (O/R Designer) meg van nyitva a northwind.dbml fájlhoz.

Táblák hozzáadása lekérdezéshez az O/R Designerhez

  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 panelre. Kattintson a Rendelések táblára, és húzza a tervező bal oldali ablaktáblájára.

    A tervező új Customer és Order objektumokat hoz létre a projekthez. Figyelje meg, hogy a tervező automatikusan észleli a táblák közötti kapcsolatokat, és gyermektulajdonságokat hoz létre a kapcsolódó objektumokhoz. Az IntelliSense például megmutatja, hogy a Customer objektum Orders tulajdonságot tartalmaz az adott ügyfélhez kapcsolódó összes rendeléshez.

  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 lekérdezéséhez és az eredmények megjelenítéséhez

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

  2. Kattintson duplán az Űrlap1 gombra, ha kódot szeretne hozzáadni az űrlap Load eseményéhez.

  3. Amikor táblákat adott hozzá az O/R Designerhez, a tervező hozzáadott egy DataContext objektumot a projekthez. Ez az objektum tartalmazza azt a kódot, amely szükséges ezekhez a táblákhoz való hozzáféréshez, az egyes táblákhoz tartozó objektumokon és gyűjteményeken felül. 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 egy példányát a kódban, és lekérdezheti az O/R Designer által megadott táblákat.

    Adja hozzá a következő kódot az Load eseményhez az adatkörnyezet tulajdonságaiként közzétett táblák lekérdezéséhez.

    Dim db As New northwindDataContext
    
    Dim londonCusts = From cust In db.Customers
                      Where cust.City = "London"
                      Select cust
    
    DataGridView1.DataSource = londonCusts
    
  4. Nyomja le az F5 billentyűt a projekt futtatásához és az eredmények megtekintéséhez.

  5. Az alábbiakban néhány további, kipróbálható lekérdezést talál:

    Dim londonCustOrders = From cust In db.Customers,
                                ord In cust.Orders
                           Where cust.City = "London"
                           Order By 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"))
                Order By cust.CompanyName
                Select cust.CompanyName, cust.City
    
    DataGridView1.DataSource = custs
    

Lásd még: