Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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 minta a Aggregate és Group By záradékok használatával számolja, összegzi és átlagozza az eredményeket. További információ: összesítő záradék és csoportosítási záradék.
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: A fejlesztői környezet személyre szabása.
Adatbázis-kapcsolat létrehozása
Nyissa meg a Nézet menüben a /Database Explorer ablakot, majd kattintson a /Database Explorer parancsra.
Kattintson a jobb gombbal a Adatkapcsolatok menüpontra a Server Explorer/Database Explorer területen, majd kattintson a Kapcsolat hozzáadásaparancsra.
Adjon meg érvényes kapcsolatot a Northwind mintaadatbázishoz.
LINQ-t tartalmazó projekt hozzáadása AZ SQL-fájlhoz
A Visual Studióban a Fájl menüben mutasson az Újra , majd kattintson a Projektre. Projekttípusként válassza a Visual Basic Windows Forms-alkalmazás lehetőséget.
A Project menüben kattintson az Új elem hozzáadásagombra. Válassza ki a LINQ-t az SQL-osztályok elemsablonhoz.
Nevezze el a fájlt
northwind.dbml. Kattintson a gombra ahozzáadásához. Az Object Relational Designer (O/R Designer) megnyílik a northwind.dbml fájl számára.
Táblák hozzáadása lekérdezéshez az O/R Designerhez
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.
Kattintson a Vevők táblára, és húzza a tervező bal oldali paneljára. Kattintson a Rendelések táblára, és húzza a tervező bal oldali ablaktáblájára.
A tervező új
CustomerésOrderobjektumokat 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 aCustomerobjektumOrderstulajdonságot tartalmaz az adott ügyfélhez kapcsolódó összes rendeléshez.Mentse a módosításokat, és zárja be a tervezőt.
Mentse a projektet.
Kód hozzáadása az adatbázis lekérdezéséhez és az eredmények megjelenítéséhez
A eszközkészletbőlhúzza át a DataGridView vezérlőt a projekt alapértelmezett Windows űrlapjára, a Form1-re.
Kattintson duplán az Űrlap1 gombra, ha kódot szeretne hozzáadni az űrlap
Loadeseményéhez.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, amelyhez hozzá kell férnie a táblákhoz, valamint az egyes táblák egyes objektumaihoz és gyűjteményeihez. 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
Loadeseményhez a DataContext tulajdonságaiként közzétett táblák lekérdezéséhez, valamint az eredmények számának, összegének és átlagának lekérdezéséhez. A minta aAggregatezáradékot használja egyetlen eredmény lekérdezéséhez, aGroup Byzáradék pedig a csoportosított eredmények átlagának megjelenítéséhez.Dim db As New northwindDataContext Dim msg = "" Dim londonCustomerCount = Aggregate cust In db.Customers Where cust.City = "London" Into Count() msg &= "Count of London Customers: " & londonCustomerCount & vbCrLf Dim averageOrderCount = Aggregate cust In db.Customers Where cust.City = "London" Into Average(cust.Orders.Count) msg &= "Average number of Orders per customer: " & averageOrderCount & vbCrLf Dim venezuelaTotalOrders = Aggregate cust In db.Customers Where cust.Country = "Venezuela" Into Sum(cust.Orders.Count) msg &= "Total number of orders from Customers in Venezuela: " & venezuelaTotalOrders & vbCrLf MsgBox(msg) Dim averageCustomersByCity = From cust In db.Customers Group By cust.City Into Average(cust.Orders.Count) Order By Average DataGridView1.DataSource = averageCustomersByCity 'Another way to grab the count and sum londonCustomerCount = (From cust in db.Customers Where cust.City = "London").Count() venezuelaTotalOrders = (From cust in db.Customers Where cust.Country = "Venezuela" Select cust.Orders).Sum()Nyomja le az F5 billentyűt a projekt futtatásához és az eredmények megtekintéséhez.