XML jest jednym z najlepszych i najpopularniejszych formatów do wymiany danych. Jego implementacji, nie mogło zabraknąć również w C#. Warto wspomnieć, że XML pełni w platformie .NET bardzo ważną funkcję, ponieważ jest on często używany w celach konfiguracyjnych. Przykładem tego, jest na pewno dobrze wszystkim znany plik Web.config, używany do konfiguracji aplikacji ASP.NET. Dzisiejszym wpisem, chciałbym rozpocząć mały cykl artykułów na temat wykorzystania XML w C#. Na pierwszy ogień, najprostszy sposób ...
Bazy danych i XML 3749 dni, 1 godzinę temu 716 źrodło rozwiń
Autor: Ostatnimi dniami(ściślej: dniem ) pisałem serializacje/deserializację danych, do których ma dostęp użytkownik. Już od dłuższego czasu myślałem jak to zrobić, by było dobrze. Było to jednym z głównych czynników zaprojektowania gry tak, a nie inaczej. Na „pierwszy raz” postanowiłem napisać ładow...
Bazy danych i XML 3750 dni, 7 godzin, 39 minut temu 30 źrodło rozwiń
Aby wyjaśnić znaczenie atrybutu stwórzmy najpierw tabelę składają się wyłącznie z jednej kolumny – klucza głównego. Ponadto nie ustawiajmy IDENTITY dla tej kolumny. Następnie spróbujmy wykonać 2 poniższe insert’y:begintransactioninsertinto TestSet (ID) values(1); insertinto TestSet (ID) values(1); committransaction; Przy drugim insercie wyskoczy błąd. To jest oczywiste ponieważ klucz główny musi być unikalny. Jeśli jednak odpalimy select’a przekonamy się, że wartości z pierwszego insert’a zostały wstaw...
Bazy danych i XML 3750 dni, 16 godzin, 23 minuty temu 20 źrodło rozwiń
ObjectTrackingEnabled Dobrą praktyką jest ustawianie context.ObjectTrackingEnabled = false, gdy tylko odczytujemy jakieś dane.2. RunWithElevatedPrivilegesSPSecurity.RunWithElevatedPriviliges niestety nie działa z kodem LINQ To SharePoint. Istnieje jednak obejście, które znalazłem tutaj: public static void RunWithElevatedPriviliges(SPSecurity.CodeToRunElevated secureCode) { HttpContext backupCtxt = HttpContext.Current; try { // if there is a SPContext make it is as null so...
Bazy danych i XML 3756 dni, 22 godziny, 9 minut temu 22 źrodło rozwiń
Autor: Ostatnio na forum portalu CodeGuru.pl brałem udział w dyskusji na temat metod prostego debugowania kodu T-SQL z wykorzystaniem polecenia PRINT. W wątku użytkownik szogun.krepa podał metodę obejścia problemu z poleceniem PRINT, które wysyła komunikat informacyjny (w przypadku aplikacji SQL Server Management Studio komunikat ten pojawia się w zakładce Messages) z o...
Bazy danych i XML 3757 dni, 7 godzin, 28 minut temu 56 źrodło rozwiń
W poprzednim poście zaprezentowałem sposób tworzenia drzewa w tabeli wykorzystując typ hierarchyid. W dzisiejszym poście z kolei chciałbym pokazać kilka ułatwień jakie daje nam ten nowy typ. Każdy węzeł jest reprezentowany za pomocą stringu. Dla korzenia jest to “/”, dla potomstwa “/1”, “/2” itd. Schodząc w dół drzewa otrzymujemy “/1/1”, “/1/1/1” itd. Bardzo łatwo wiec dostać się do konkretnego węzła:select*from Tree where Node=cast('/1/'as hierarchyid); Typ hierarchyid posiada wiele metod. Jedną z ciek...
Bazy danych i XML 3758 dni, 15 godzin, 9 minut temu 37 źrodło rozwiń
Czasami istnieje potrzeba reprezentacji drzewa za pomocą tabeli. Klasycznym przykładem jest hierarchia pracowników w firmie. Bardzo popularną reprezentacją jest:IDEMPLOYEE int, IDMANAGER int, Title nvarchar(50). IDEMPLYOEE jest oczywiście kluczem głównym, z kolei IDMANAGER stanowi klucz obcy wskazujący na IDEMPLOYEE. Przykład wypełnionej tabeli:IDEMPLOYEEID_MANAGERTitle1NULLProject Manager21Senior Software Developer32Junior Developer41Senior database developer Rozwiązanie jak najbardziej poprawne....
Bazy danych i XML 3762 dni, 41 minut temu 62 źrodło rozwiń
Dzisiaj musiałem w LINQ TO SQL napisać zapytanie odpowiadające takiemu zapytaniu w T-SQL...
Bazy danych i XML 3764 dni, 10 godzin, 1 minutę temu 70 źrodło rozwiń
Zamieszczam przykład zastosowania LINQ To SharePoint do pobierania, zapisywania, aktualizowania i usuwania danych z dwóch list powiązanych ze sobą lookup fieldem (relacja jeden do wielu).
Bazy danych i XML 3768 dni, 18 godzin, 49 minut temu 44 źrodło rozwiń
Dzisiaj coś z pogranicza horroru (będzie strasznie), sci-fi (będzie niesamowicie) i kina familijnego (będzie happy end). Czyli dlaczego warto używać transakcji NHibernate przy każdym wywołaniu metody Save(). Zaczęło się od prac nad statystykami. Po sporządzeniu planu wykonania 7 rodzajów statystyk przystąpiłem do realizacji pierwszych punktów. Zacząłem od napisania testów oraz repozytoriów do pobierania danych z bazy w celu wyliczenia statystyk. Metodyka pisania testów metod pobierających dane z bazy był...
Bazy danych i XML 3768 dni, 18 godzin, 49 minut temu 158 źrodło rozwiń
Silnik Sql Server posiada kilka metod do pobierania daty i czasu. Część z nich jest już przestarzała i nie powinno się z nich korzystać. SQL Server 2008 wprowadził kilka dodatkowych funkcji: SYSDATETIME, SYSDATETIMEOFFSET, SYSUTCDATETIME. Wszystkie one pobierają czas z dokładnością do 100 nanosekund. Aby przekonać się co dokładnie zwracają najlepiej wywołać je:select SYSDATETIME() as'SYSDATETIME',SYSDATETIMEOFFSET() 'SYSDATETIMEOFFSET', SYSUTCDATETIME() as'SYSUTCDATETIME'; Jak widać SYSDATETIEM zwraca ...
Bazy danych i XML 3769 dni, 13 godzin, 10 minut temu 39 źrodło rozwiń
Autor: Obiecałem, że jak tylko będę miał możliwość, zorganizuję konkurs T-SQL inspirowany cyklicznymi konkursami T-SQL Challenge. I słowa dotrzymuję :-)Dane wejściowe Dane są dwie tabele o strukturach, jak poniżej:Tabela dbo.Teams: TeamId TeamName 1 Poland 2...
Bazy danych i XML 3769 dni, 19 godzin, 39 minut temu 88 źrodło rozwiń
Prawdopodobnie wszyscy znają już klauzulę group by w zapytaniach SQL – nie stanowi żadnej rewelacji. Myślę jednak, że znacznie mniej popularniejszą klauzulą jest GROUPING SETS. Rozważmy następujące zapytanie: selectfrom Products GROUPBY ProductCategory unionallselectfrom Products GROUPBY ProductSubcategory Zapytanie zwróci wiersze pogrupowane po kategorii produktu oraz podkategorii. Należy podkreślić, że grupowania wykonywane są niezależnie od siebie i nie mają charakteru hierarchicznego (tak jak to b...
Bazy danych i XML 3776 dni, 1 godzinę, 3 minuty temu 31 źrodło rozwiń
We wpisie o LinqToXml pisałem jak można czytać z pliku XML. Co jednak z zapisywaniem? Otóż jest to równie łatwe. Znowu zaprzęgniemy do pracy Linq. Najpierw oczywiście otwieramy plik a następnie pozostaje stworzyć XDocument z zawartością. Zawartość możemy dodawać ręcznie albo (jak na przykładzie poniżej) wybrać elementy za pomoca Linq i zwrócić je w takiej postacji jakiej chcemy mieć je zapisane.
Bazy danych i XML 3777 dni, 3 minuty temu 74 źrodło rozwiń
Dzisiejszy post ma charakter raczej ciekawostki– w praktyce nic przydatnego nie wnosi:). Wiemy, że wartości NULL mają specjalne znaczenie – podstawowe operacje matematyczne zachowują się inaczej niż na zwykłych liczbach. Podobnie jest z porównywaniem NULL ponieważ służy do tego specjalny operator (IS NULL). Istnieje jednak w SQL Server zmienna, której ustawienie pozwala porównywać wartości NULL za pomocą klasycznych operatorów ‘==’. Rozważmy następujące zapytanie:select*from Persons WHERE FirstName isnul...
Bazy danych i XML 3777 dni, 16 godzin, 20 minut temu 44 źrodło rozwiń
Czasami warto sprawdzić, czy wartości w podanych kolumnach zostały zmienione. Najłatwiejszym sposobem jest porównanie sumy kontrolnej. Jeśli stara wartość jest różna od aktualnej oznacza to, że któreś pole zostało zmienione. W T-SQL służy do tego funkcja CHECKSUMAGG:select CHECKSUMAGG(Credit) from Persons GROUPBY Persons Podobną funkcją jest CHECKSUM – liczy sumę kontrolną, jednak dla każdego wiersza a nie dla całych grup.Explore posts in the same categories:SQL Server This entry wa...
Bazy danych i XML 3780 dni, 18 godzin, 11 minut temu 25 źrodło rozwiń
Wyobraźmy sobie następująca sytuację. Implementujemy program do obsługi przetwórni win. Nie będą to takie wina, jakie możemy spotkać na codzień. Wina będą markowe, produkowane z prawdziwych winogron. Nie jabłek, nie gruszek, a właśnie winogron. Jak wiemy winogrona możemy spotkać powszechnie w dwóch odmianach – białe, oraz ciemne.
Bazy danych i XML 3780 dni, 20 godzin, 46 minut temu 50 źrodło rozwiń
Do czego służy LinqToXml? Do prostego czytania XML-a. Możemy stosować składnię Linq i czytać w ten sposób pliki xml-owe. Ładnie i miło. Czyż nie jest to ładne? Zamiast (o zgrozo) ręcznie parsować plik lub uczyć się XPath-a można zaprzęgnąć Linq. Problem jaki przy tym wyszedł to taki paskudny komunikat: Could not find an implementation of the query pattern for source type ‘System.Collections.Generic.IEnumerable
Bazy danych i XML 3781 dni, 21 godzin, 37 minut temu 19 źrodło rozwiń
W SQL Server istnieje kilka narzędzi pozwalających określić wydajność wykorzystywanych zapytań. Podstawowym i najbardziej chyba znanym jest SQL Server Profiler. Można go włączyć z poziomu Sql Server Management Studio (menu główne->Tools->Sql Server Profiler). Po uruchomieniu pojawi się okienko w którym można określić m.in. zdarzenia, które powinny być monitorowane. Następnie aby rozpocząć analizę należy wybrać Start Selected Trace (ikonka zielonej strzałki w ToolBar). Od tego momentu wszelkie zapytania ...
Bazy danych i XML 3782 dni, 20 godzin, 22 minuty temu 61 źrodło rozwiń
Ostatnio mam szczęście do "dziwnych" błędów. Dwa dni temu pisałem o htmlfile: Access Denied. Przy okazji podziękowania dla Tomka i Procenta za wskazówki jak sobie z nim poradzić. Teraz natknąłem się na błąd z zupełnie innej beczki związany z komunikacją z bazą danych. Zadanie do wykonania: wywołać procedurę składowaną. Zabrałem się do tego jak zawsze czyli nawiązałem połączenie do bazy danych, utworzyłem DbCommand, dodałem parametry, ustawiłem wartości parametrów i wywołałem procedurę. Niestety tym razem...
Bazy danych i XML 3783 dni, 7 godzin, 33 minuty temu 28 źrodło rozwiń