DbCommand posiada następujące metody:
- ExecuteNonQuery - wywołanie metody, która nie zwraca rezultatu - jedyną odpowiedzią jako otrzymamy w tym przypadku od serwera bazy danych to ilość zmienionych rekordów
- ExecuteReader - zwraca klasę umożliwiającą odczyt danych w jedną stronę. Obiekt który zostanie zwrócony po wywołaniu tej metody to DbDataReader. Klasa ta posiada metodę Read, która zwraca czy są jeszcze dane do odczytania. Jeżeli nie otrzymamy wartość null.
- ExecuteScalar - pozwala na odebranie pojedynczej wartości
MARS - Multiple Active Result Sets
Ustawienie tej metody do połączenia z bazą danych umożliwia uruchamianie wielu DbDataReader-ów jednocześnie. Jeżeli nie włączymy tej technologi, na raz na serwerze będzie mógł działać tylko jeden DbDataReader na raz. Aby włączyć tę technologię należy do connection string dodać: MultipleActiveResultSets=True
Bez MARS można sobie poradzić tworząc większą ilość połączeń. Ta technologia w zamierzeniu ma ułatwić programiście tworzenie wielu zapytań do bazy danych, wykonywanych w tym samym czasie.
DbDataAdapter
Obiekt ten służy do pobierania i uaktualnia danych pomiędzy bazą a obiektem DataTable. DbDataAdapter posiada właściwości umożliwiające pobieranie, usuwanie, uaktualnianie i usuwanie danych z bazy:
- SelectCommand
- InsertCommand
- UpdateCommand
- DeleteCommand
Aby zwiększyć wydajność zapisu danych do bazy danych, można ustawić właściwość UpdateBatchSize. Domyślnie wysyłany jest na raz jeden rekord do bazy. Zwiększając tę wartość, na raz zostanie wysłana większa ilość rekordów.
UDTs
Począwszy od MS SQL 2005 jest możliwość używania .NET w środowisku MS SQL. Dzięki temu, możemy napisać kod w C# który zostanie uruchomiony na serwerze. Dzięki wsparciu dla SQLCLR użytkownik może tworzyć własne typy i struktury danych, które zostaną przechowane na serwerze.
Należy pamiętać, że po stronie zarówno klienta, jak i serwera muszą być te same biblioteki DLL zawierające informacje o typach.
Przykładowo stworzymy program, który może przechowywać dane geograficzne (położenie):
Definicja tabeli w bazie danych:
CREATE TABLE Locations(ZipCode CHAR(5),Location Geography);
Następnie w projekcie dodajemy referencję do biblioteki Microsoft.SqlServer.Types. Na mojej maszynie biblioteka ta znajduje się pod ścieżką C:\Program Files (x86)\Microsoft SQL Server\110\SDK\Assemblies
Kod w C# pozwalający na dodanie informacji o położeniu:
Code:
Brak komentarzy:
Prześlij komentarz