Porady: modyfikowanie danych w bazie danych przy użyciu LINQ (Visual Basic)
Language-Integrated Zapytania (LINQ) ułatwiają dostęp do informacji o bazie danych i modyfikowanie wartości w bazie danych.
W poniższym przykładzie pokazano, jak utworzyć nową aplikację, która pobiera i aktualizuje informacje w bazie danych programu SQL Server.
Przykłady w tym artykule korzystają z przykładowej bazy danych Northwind. Aby uzyskać bazę danych, zobacz Pobieranie przykładowych baz danych.
Aby utworzyć połączenie z bazą danych
W programie Visual Studio otwórz Eksplorator serwera/Eksplorator baz danych, klikając menu Widok , a następnie wybierz pozycję Eksploratora serwera/Eksploratora baz danych.
Kliknij prawym przyciskiem myszy połączenia danych w Eksploratorze Server Explorer/Database Explorer, a następnie kliknij przycisk Dodaj połączenie.
Określ prawidłowe połączenie z przykładową bazą danych Northwind.
Aby dodać projekt z plikiem LINQ to SQL
W programie Visual Studio w menu Plik wskaż polecenie Nowy, a następnie kliknij pozycję Projekt. Wybierz pozycję Visual Basic Aplikacja Windows Forms jako typ projektu.
W menu projektu kliknij pozycję Dodaj nowy element. Wybierz szablon elementu klasy LINQ to SQL.
Nadaj plikowi nazwę
northwind.dbml
. Kliknij pozycję Dodaj. Projektant relacyjny obiektu (O/R Designer) jest otwarty dla plikunorthwind.dbml
.
Aby dodać tabele do zapytania i zmodyfikować go w projektancie
W Eksploratorze serwera /Eksplorator baz danychrozwiń połączenie z bazą danych Northwind. Rozwiń folder Tables.
Jeśli program O/R Designer został zamknięty, możesz go ponownie otworzyć, klikając dwukrotnie dodany wcześniej plik
northwind.dbml
.Kliknij tabelę Customers (Klienci) i przeciągnij ją do lewego okienka projektanta.
Projektant tworzy nowy obiekt Customer dla projektu.
Zapisz zmiany i zamknij edytora.
Zapisz projekt.
Aby dodać kod, aby zmodyfikować bazę danych i wyświetlić wyniki
Z przybornika przeciągnij kontrolkę DataGridView na domyślny formularz Windows dla twojego projektu, Form1.
Po dodaniu tabel do narzędzia projektowego O/R, projektant O/R dodał do projektu obiekt DataContext. Ten obiekt zawiera kod, którego można użyć do uzyskiwania dostępu do tabeli Customers. Zawiera również kod, który definiuje lokalny obiekt Customer i kolekcję Customers dla tabeli. Obiekt DataContext dla projektu jest nazwany na podstawie nazwy pliku dbml. W tym projekcie obiekt DataContext ma nazwę
northwindDataContext
.Możesz utworzyć wystąpienie obiektu DataContext w kodzie i wykonać zapytanie oraz zmodyfikować kolekcję Customers określoną przez projektanta O/R. Zmiany wprowadzone w kolekcji Customers nie zostaną odzwierciedlone w bazie danych do momentu ich przesłania przez wywołanie metody SubmitChanges obiektu DataContext.
Kliknij dwukrotnie Formularz Windows, Form1, w celu dodania kodu do zdarzenia Load, aby wysłać zapytanie do tabeli "Customers", która jest udostępniona jako właściwość DataContext. Dodaj następujący kod:
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
Z przybornika , przeciągnij trzy kontrolki Button na formularz. Wybierz pierwszą kontrolkę
Button
. W oknie właściwości ustawName
kontrolkiButton
naAddButton
, aText
na wartośćAdd
. Wybierz drugi przycisk i ustaw właściwośćName
na wartośćUpdateButton
, a właściwośćText
na wartośćUpdate
. Wybierz trzeci przycisk i ustaw właściwośćName
naDeleteButton
i właściwośćText
na wartośćDelete
.Kliknij dwukrotnie przycisk Dodaj, aby dodać kod do zdarzenia
Click
. Dodaj następujący kod: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
Dwukrotnie kliknij przycisk Update, aby dodać kod do zdarzenia
Click
. Dodaj następujący kod: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
Kliknij dwukrotnie przycisk Usuń, aby dodać kod do zdarzenia
Click
. Dodaj następujący kod: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
Naciśnij F5, aby uruchomić projekt. Kliknij Dodaj, aby dodać nowy rekord. Kliknij Aktualizuj, aby zmodyfikować nowy rekord. Kliknij Usuń, aby usunąć nowy rekord.