Podstawowe funkcje dodatku linq w C#

Podobne dokumenty
TEMAT ĆWICZENIA Zapoznanie z technologią LINQ

Leszek Stasiak Zastosowanie technologii LINQ w

NORTHWIND. Anonco.pl. ćwiczenia praktyczne. KiK s Tutorials. NORTHWIND dwiczenia praktyczne. ANONCO.PL/SQL SQLSERVERDLAOPORNYCH.WORDPRESS.

Ćwiczenie zapytań języka bazy danych PostgreSQL

5. Bazy danych Base Okno bazy danych

SQL (ang. Structured Query Language)

QUERY język zapytań do tworzenia raportów w AS/400

Przykład powyżej pokazuje, że w zapytaniu można umieszczać funkcje zarówno zdefiniowane w ramach środowiska, jak również własne.

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Wykład 5. SQL praca z tabelami 2

Bazy danych. Polecenia SQL

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Wykład 8. SQL praca z tabelami 5

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL

Wprowadzenie do baz danych

Autor: Joanna Karwowska

Podstawy technologii WWW

Wykład 05 Bazy danych

Złączenie CROSS JOIN jest to tzw. złączenie krzyżowe, którego ogólna postać wygląda następująco:

Grupowanie danych klauzula GROUP BY

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Kurs. Podstawy MySQL

Relacyjne bazy danych. Podstawy SQL

Autor: Joanna Karwowska

1. Tworzenie tabeli. 2. Umieszczanie danych w tabeli

SELECT * FROM tabela WHERE warunek wybiera dane spełniające podany warunek

Podstawowe zapytania SELECT (na jednej tabeli)

Przygotowanie formularza do wypożyczenia filmu:

5.5. Wybieranie informacji z bazy

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Przestrzenne bazy danych Podstawy języka SQL

2. Wyświetlić wyłącznie liczby ujemne zawarte w tablicy tabl[]. 3. Wyświetlić rosnąco liczby ujemne zawarte w tablicy tabl[].

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,

SIECI KOMPUTEROWE I BAZY DANYCH

Podstawy języka SQL Co to jest SQL? Możliwości SQL SQL*Plus

Kwerenda. parametryczna, z polem wyliczeniowym, krzyżowa

Wyświetl imie i nazwisko ucznia, nazwę przedmiotu z którego otrzymał ocenę niedostateczną. Nazwij tę kwerendę oceny niedostateczne.

Podzapytania do tabel W miejscu w którym możemy użyć nazwy tabeli, możemy użyć podzapytania

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy)

PROJEKT CZĘŚCIOWO FINANSOWANY PRZEZ UNIĘ EUROPEJSKĄ. Opis działania raportów w ClearQuest

Wprowadzenie do Doctrine ORM

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

Laboratorium 7 Blog: dodawanie i edycja wpisów

Bazy danych. dr inż. Arkadiusz Mirakowski

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny technologiczny Politechnika Śląska

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Bazy danych kwerendy (moduł 5) 1. Przekopiuj na dysk F:\ bazę M5KW.mdb z dysku wskazanego przez prowadzącego

Instytut Mechaniki i Inżynierii Obliczeniowej fb.com/groups/bazydanychmt/

Laboratorium Bazy danych SQL 2

Bazy danych Access KWERENDY

ACCESS ćwiczenia (zestaw 1)

Bazy danych. dr Radosław Matusik. radmat

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław r.

SIECI KOMPUTEROWE I BAZY DANYCH

Backend Administratora

Tworzenie tabeli przez select CREATE TABLE PRAC2 AS SELECT P.NAZWISKO, Z.NAZWA FROM PRAC P NATURAL JOIN ZESP Z

Podstawowe funkcjonalności interfejsu. - co warto wiedzieć o interfejsie Mozart-a

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.

LINQ TO XML. Autor ćwiczenia: Marcin Wolicki

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny technologiczny Politechnika Śląska

Budowa aplikacji ASP.NET współpracującej z bazą danych do obsługi przesyłania wiadomości

Wykład 6. SQL praca z tabelami 3

Plan. Wyświetlanie n początkowych wartości (TOP n) Użycie funkcji agregujących. Grupowanie danych - klauzula GROUP BY

Baza danych część 8. -Klikamy Dalej

Struktura drzewa w MySQL. Michał Tyszczenko

Ćwiczenie 7 Komponent IBQuery - uruchamianie zapytań aktualizujących. 1. Przygotować w nowym katalogu aplikację do aktualizacji bazy SKOKI.GDB.

10. Wybierz nazwy produktów oraz inf. o stanie magazynu dla produktów dostarczanych przez firmę.tokyo Traders.

Microsoft Access zajęcia 3 4. Tworzenie i wykorzystanie kwerend, formularzy i raportów

Relacyjne bazy danych. Podstawy SQL

Oracle11g: Wprowadzenie do SQL

Język SQL, zajęcia nr 1

Microsoft.NET: LINQ to SQL, ASP.NET AJAX

Kostki OLAP i język MDX

ĆWICZENIE Uruchomić Oracle Forms Builder. 2. Utworzyć nowy formularz (File->New->Form) 3. Nawiązać połączenie z bazą danych (file-connect).

Uzupełnij pola tabeli zgodnie z przykładem poniżej,

22 października Akademia Górniczo-Hutnicza, Automatyka i Robotyka. Porównanie LINQ i NHibernate. Mateusz Mazur Ale o co chodzi?

Podstawy języka SQL cz. 2

1. Połączenie z bazą danych. W wybranym edytorze tworzymy plik sqltest.py i umieszczamy w nim poniższy kod. #!/usr/bin/python3 import sqlite3

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

Optymalizacja poleceń SQL Metody dostępu do danych

Marek Rakowski Podstawy zdania SELECT Strona 1 z 12

Ćwiczenie 3 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz

Ref. 7 - Język SQL - polecenia DDL i DML

Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania.

Language INtegrated Query (LINQ)

2017/2018 WGGiOS AGH. LibreOffice Base

Tabele zagnieżdżone z sortowaniem po statystykach

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Elektroenergetyki Technologie informatyczne

EXCEL TABELE PRZESTAWNE

BAZY DANYCH wprowadzenie do języka SQL. Opracował: dr inż. Piotr Suchomski

a) Data spaceru psa z listy moich psów... 4 b) Data spaceru psa z poza mojej listy (np. wyprowadzonego na prośbę/w zastępstwie itp.)...

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN

Transkrypt:

Podstawowe funkcje dodatku linq w C# 1. Łączenie Tabel Do łączenia dwóch lub więcej tabel wykorzystujemy komendę join. Składnia całego wyrażenia gotowego do wyświetlenia w DataGridView wygląda następująco: var query = from p in (pierwsza tabela) join c in (druga tabela) on (kolumna z pierszej tabeli)equals (kolumna z drugiej tabeli) select new {wyświetlane kolumny }; Przyjrzyjmy się bliżej linii zawierającej wyrażenie join. Zapisem c in (druga tabela) pokazujemy, którą tabele chcemy dołączyć, następnie wskazujemy kolumnę po której dołączenie ma być wykonane. Wyrażenie equals oznacza że wiersze tych kolumn mają się sobie równać. Linii z wyrażeniem join może być dowolna ilośc co będzie powodować dołączanie kolejnych tabel. Przykład: Posiadamy bazę danych z tabelami, Customers, Orders, Orders_Details. Zapytanie w linq może wyglądać np. tak: var query = from p in dc.customers join order in dc.orders on p.customerid equals order.customerid join s in dc.order_details on order.orderid equals s.orderid select new{p.contactname,p.city,p.country,order.requireddate, order.orderdate,s.unitprice}; Tabele są tutaj przedstawione jako obiekty. Aby wyświetlić interesujące nas kolumny w select new a w nawiasach wpisujemy nazwy kolumn z tabel które dołączyliśmy. I tak w wyniku takiej operacji otrzymamy:

2.Wyświetlanie największej/najmniejszej wartości z kolumny z wykorzystaniem grupowania Nasze wyrażenie będzie wykonywało dwie operacje. Pierwszą pogrupuje wartości z jednej kolumny następnie wyświetli wartość maksymalną bądź minimalną. W przykładzie posłużymy się Tabelą Products w której będziemy pracować na kolumnach CategoryID i UnitPrice. Wyrażenie przyjmuje postać: var query = from p in (tabela) group p by (po której kolumnie na grupować) into g select new {key=g.key,wartosc= (wyrażenie z rezulatem)}; Po wyrażeniu group p by podajemy nazwę po której ma być stworzone grupowanie następnie wskazujemy gdzie to ma zostać przechowane (into g). Następnie wybieramy co ma zostać wyświetlone. key = g.key oznacza że pierwsza kolumna będzie zawierać klucz po jakim zostały pogrupowane dane. Następnie wpisujemy wyrażenie które na s interesuje w naszym przypadku będzie to:

wartosc = g.max(a=>a.unitprice) lub wartosc = g.min(a=>a.unitprice) Wartość tej kolumny to wynik operatora Min/Max wywołanego dla każdego elementu należącego do g. Z tym, że operator Min/Max dostaje w argumencie wyrażenie lambda, które mówi jak porównywać. Cały kod przyjmuje wygląd: var query = from p in dc.products group p by p.categoryid into g select new {key =g.key,wartosc = g.max(a=>a.unitprice)}; i dla wykonania dla g.max() mamy A dla g.min()

3. Ustawienie rekordów względem danej kolumny (rosnąco/malejąco) Celem będzie posortowanie tabeli wzgl danej kolumny. Do przykładu posłużę się tabelą Products. Wyrażenie jest postaci: var query = from p in (tabela) orderby (po kolumnie) descending/ascending select p; Wyrażenie po słowie orderby zawiera nazwę kolumny względem której ma zostać posortowane, descending w kolejności malejącej ascending w kolejności rosnącej W naszym przykładzie przyjmuje ono wygląd var query = from p in dc.products orderby p.productname ascending select p; a po wykonaniu otrzymujemy posortowane dane

4. Dopisanie do danych ciągu znaków w zależności od podanego parametru z kolumny Do zadania wykorzystuje tabele Products. Zadanie polega na dopisaniu ciągu znaków podanego w textboxie do kolumny ProductName w zależności od podanego w kolejnym textboxie progu. Próg ten będziemy sprawdzać w kolumnie UnitsInStock. Czyli np użytkownik poda że chce do nazwy dodać ciąg duzo jeśli w kolumnie UnitsInStock wartość jest większa niż 30. 1. Tworzymy textboxy i przycisk,(w przykładzie textboxy nazwane tbadd i tbprog) 2. W zdarzeniu naciśnięcia przycisku wstawiamy warunek wypełnienia tekstboxów. Np. if ((tbadd.text!= "") && (tbprog.text!= "")) 3. Teraz stworzymy właściwy kod wykonujący nasze zadanie. Po pierwsze musimy stworzyć zapytanie które wybierze właściwe rekordy. var query = from p in dc.products where p.unitsinstock > Int32.Parse(tbprog.Text) select p; w zapytaniu wykorzystujemy zapytanie where po którym musi znaleźć się wyrażenie logiczne u nas jest to porównanie kolumny UnitsInStock z podaną wartością z textboxa zkonwertowaną na typ int. 4. Kolejną czynnością będzie dodanie do każdego wybranego elementu kolumny ProductName wartość wpisanej w pierwszym textboxie. Wykonamy to za pomocą foreach: foreach (var a in query) { dc.products.deleteonsubmit(a); a.productname = a.productname + tbadd.text; dc.products.insertonsubmit(a); } Foreach wykonuje się dla każdego elementu query. Poprzez funkcje DeleteOnSubmit usuwamy dany przez a rekord. Następnie zmieniamy ProductName poprzez dodanie wartości textboxa. Potem dodajemy ten wiersz przez funkcje InsertOnSubmit. 5. Tworzymy zapytanie które pozwoli nam się odwołać do całości tablicy: var kwer = from f in dc.products select f;

6. Przekazujemy wartość do DataGridView. dgwidok.datasource = kwer; 7. Wykonanie zadania daje następujący rezultat: UWAGI: do texboxa gdzie podajemy próg należy dodać warunek przy zdarzeniu wpisywania aby można było wpisywać tylko liczby

5. Wyświetlanie danych ze wzgl. na podany ID Do wyświetlenia posłużymy się nową formą, będziemy wyświetlać dane z tabeli Suppliers. Wykorzystamy texbox do wprowadzania numeru rekordu oraz lebels do wyświetlania. Więc nasza forma może wyglądać tak: Następnie piszemy funkcję, która będzie nam wypełniała danymi z bazy: void zmien_napisy(int numer) { var query = (from p in dc.suppliers where p.supplierid == numer select p); foreach (var a in query) { } } lfirmname.text = a.companyname; ladress.text = a.address; lnamecontact.text = a.contactname; lstan.text = a.contacttitle; lphone.text = a.phone; lpostalcode.text = a.postalcode; lcity.text = a.city; lcountry.text = a.country;

Wybieramy poprzez warunek where p.supplierid == numer rekord który nas interesuje. Następnie dzieki pętli foreach zmieniamy wartości labeli na dane z bazy. Pozostaje tylko dodać stosowne zabezpieczenia textboxa (wprowadzanie liczb) Nasz wynik powinien wyglądać tak UWAGA: W kodzie źródłowym wykonanie funkcji zmien_napis() zostało zawarte w zdarzeniu naciśnięcia klawisza w texboxie.