Felhasználói felületek és üzleti logika Bollobás Dávid ASP.NET
Tartalom • Stored Procedures – Függvények • SQL típusok – DateTime convert • GridView – Template – PreRender • SqlDataSource – GUID hiba • Dinamikus SQL • MSSQL tippek
Stored procedure • MSSQL szerveren futó SQL utasítás sorozat, ami rendelkezhet inputtal és outputtal • Előnyei: – Gyors – kevés adatkommunikációval jár – magas ASP.NET támogatás a controlok terén – SQL nyelv szintaktikája
MSSQL fő változó típusok C# -hoz képest • Int – integer • Bit – Boolean • Numeric(4,2) – 12 karakteres szám, amiből 2 karakter tizedes vessző után van pl.: 12,34 • Datetime – dátum+idő • Date – dátum • Nvarchar(X) – ahol X a karakterek száma, egy string • Uniqueidentifier - Guid
Első tárolt eljárásunk ---Parancs típusa az eljárásra nézve (Create,Alter) ALTER PROCEDURE [dbo].[Get_All_City] ---Paraméterek helye AS BEGIN SET NOCOUNT ON; ---Utasítás Select Distinct(City) From Profil END
Függvények • TIPUS • • IF (1=1) Begin … End ELSE IF(2=2) Begin …End • • As int) • PRINT(‚Hello’) – Messages ablakba kiírja - >debugoláshoz
DateTime • Ha nem DateTime típusú paraméterként adjuk át konvertálni kell SELECT convert(datetime, '10/23/2016', 101) -- mm/dd/yyyy SELECT convert(datetime, ' ', 102) -- yyyy.mm.dd SELECT convert(datetime, '23/10/2016', 103) -- dd/mm/yyyy SELECT convert(datetime, ' ', 104) -- dd.mm.yyyy SELECT convert(datetime, ' ', 105) -- dd-mm-yyyy SELECT convert(datetime, '23 Oct :02:07:577', 113) -- dd mon yyyy hh:mm:ss:mmm SELECT convert(datetime, '20:10:25:300', 114) -- hh:mm:ss:mmm(24h) SELECT convert(datetime, ' :44:11', 120) -- yyyy-mm-dd hh:mm:ss(24h) SELECT convert(datetime, ' :44:11.500', 121) -- yyyy-mm-dd hh:mm:ss.mmm SELECT convert(datetime, ' T18:52:47.513', 126) -- yyyy-mm-ddThh:mm:ss.mmm
Dinamikus SQL • Nem vagyunk biztosak milyen paraméterek érkeznek meg • Ha üres a paraméter és sima SQL utasításba teszem nem ad eredményt vagy nem helyesen • Nehéz debuggolni • Nehezebb összerakni • Túl nagyra nőhet • Jobban kell ismerni az SQL utasításokat
SqlDataSource • SDS segítségével létesíthetünk kapcsolatot az adatbázissal • Azon kívül, hogy lekezeli a csatlakozást, átadja a paramétereket és átveszi az eredményt • Selecting: utolsó esemény, amikor manipulálhatjuk a bemenő paramétereket pl.: azért, hogy a C# és MSSQl közötti különbségeket lekezeljük
SqlDataSource • Paramétereit beállíthatjuk akár controlra, cookiera, sessionre stb • Kötelező típusokat megadni, amik olykor hibásan vannak lekezelve pl.: GUID esetén a típust Empty-re kell állítani(hiba a rendszerben) • Írhatunk saját lekérdezést, használhatjuk a varázslót, illetve tárolt eljárást is megadhatunk neki
GridView • Sorokat jelenít meg • Templatesíthető • Page,Sort,Selection lehetőség beépítve • DataSourcehoz köthető • Automatikus schema lekérés • Könnyen szerkeszthető • PreRender eseményben egyszerűen manipulálható
MSSQL tippek • Ha létrehozunk egy új objektumot REFRESH-t kell nyomni a mappára különben nem jelenik meg • [] közé kell tenni bizonyos objektumokat, mert azok már léteznek a rendszerben pl: User,Profil