Tworzenie sparametryzowanych zapytań TableAdapter w aplikacjach .NET Framework
Uwaga
Zestawy danych i powiązane klasy to starsze technologie .NET Framework z początku 2000 roku, które umożliwiają aplikacjom pracę z danymi w pamięci, gdy aplikacje są odłączone od bazy danych. Technologie te są szczególnie przydatne w przypadku aplikacji, które umożliwiają użytkownikom modyfikowanie danych i utrwalanie zmian z powrotem w bazie danych. Mimo że zestawy danych okazały się bardzo udaną technologią, zalecamy, aby nowe aplikacje platformy .NET używały platformy Entity Framework Core. Program Entity Framework zapewnia bardziej naturalny sposób pracy z danymi tabelarycznymi jako modelami obiektów i ma prostszy interfejs programowania.
Zapytanie sparametryzowane zwraca dane spełniające warunki klauzuli WHERE
w zapytaniu. Na przykład można sparametryzować listę klientów, aby wyświetlić tylko klientów w określonym mieście, dodając WHERE City = @City
na końcu instrukcji SQL zwracającej listę klientów.
W Projektancie zestawów danych utworzysz sparametryzowane zapytania TableAdapter. Można je również utworzyć w aplikacji systemu Windows za pomocą polecenia Parametryzacja źródła danych w menu Dane. Polecenie Parametryzacja źródła danych tworzy kontrolki w formularzu, w którym można wprowadzić wartości parametrów i uruchomić zapytanie.
Uwaga
Podczas konstruowania zapytania sparametryzowanego użyj notacji parametrów specyficznej dla bazy danych, względem której kodujesz. Na przykład źródła danych Programu Access i OleDb używają znaku zapytania "?", aby oznaczyć parametry, więc klauzula WHERE
będzie wyglądać następująco: WHERE City = ?
.
Tworzenie sparametryzowanego zapytania TableAdapter
Aby utworzyć zapytanie sparametryzowane w projektancie zestawów danych
Utwórz nową tabelę TableAdapter, dodając klauzulę
WHERE
z żądanymi parametrami do instrukcji SQL. Aby uzyskać więcej informacji, zobacz Create and configure TableAdapters (Tworzenie i konfigurowanie elementów TableAdapters).lub
Dodaj zapytanie do istniejącej tabeli TableAdapter, dodając klauzulę
WHERE
z żądanymi parametrami do instrukcji SQL.
Aby utworzyć zapytanie sparametryzowane podczas projektowania formularza powiązanego z danymi
Wybierz kontrolkę w formularzu, która jest już powiązana z zestawem danych. Aby uzyskać więcej informacji, zobacz Wiązanie kontrolek formularzy systemu Windows z danymi w programie Visual Studio.
W menu Dane wybierz pozycję Dodaj zapytanie.
Ukończ okno dialogowe Konstruktor kryteriów wyszukiwania, dodając klauzulę
WHERE
z żądanymi parametrami do instrukcji SQL.
Aby dodać zapytanie do istniejącego formularza powiązanego z danymi
Otwórz formularz w programie Windows Forms Designer.
W menu Dane wybierz pozycję Dodaj zapytanie lub tagi inteligentne danych.
Uwaga
Jeśli dodawanie zapytania nie jest dostępne w menu Dane , wybierz kontrolkę w formularzu, w którym zostanie wyświetlone źródło danych, do którego chcesz dodać parametryzacja. Jeśli na przykład formularz wyświetla dane w kontrolce DataGridView , wybierz je. Jeśli formularz wyświetla dane w poszczególnych kontrolkach, wybierz dowolną kontrolkę związaną z danymi.
W obszarze Wybieranie tabeli źródła danych wybierz tabelę, do której chcesz dodać parametryzacja.
Wpisz nazwę w polu Nowa nazwa zapytania, jeśli tworzysz nowe zapytanie.
lub
Wybierz zapytanie w polu Istniejąca nazwa zapytania.
W polu Tekst zapytania wpisz zapytanie, które przyjmuje parametry.
Wybierz przycisk OK.
Kontrolka służąca do wprowadzania parametru i przycisku Załaduj jest dodawana do formularza w kontrolce ToolStrip .
Zapytanie o wartości null
Parametry tableAdapter można przypisać wartości null, gdy chcesz wykonywać zapytania dotyczące rekordów, które nie mają bieżącej wartości. Rozważmy na przykład następujące zapytanie, które ma ShippedDate
parametr w klauzuli WHERE
:
SELECT CustomerID, OrderDate, ShippedDate
FROM Orders
WHERE (ShippedDate = @ShippedDate) OR (ShippedDate IS NULL)
Jeśli było to zapytanie dotyczące obiektu TableAdapter, możesz wykonać zapytanie dotyczące wszystkich zamówień, które nie zostały wysłane przy użyciu następującego kodu:
Aby umożliwić kwerendzie akceptowanie wartości null:
W Projektancie zestawów danych wybierz zapytanie TableAdapter, które musi akceptować wartości parametrów null.
W oknie Właściwości wybierz pozycję Parametry, a następnie wybierz przycisk wielokropka (...), aby otworzyć Edytor kolekcji parametrów.
Wybierz parametr, który zezwala na wartości null i ustaw właściwość AllowDbNull na
true
wartość .