Bevezetés Üdvözöljük a C# adatbázis-programozás mesteri szinten tanfolyamán! Amint az Olvasó bizonyára tudja, a technológiai forradalom következõ lépcsõje elkerülhetetlenül a .NET felület lesz. A .NET erõssége, hogy kezdettõl fogva elosztott környezetben való használatra tervezték, vagyis hogy olyan környezetben mûködjön, amely hálózaton át összekötött számítógépekbõl és más eszközökbõl áll. Megjegyzés
E kötet középpontjában az áll, hogyan írhatunk C# nyelvû programokat, amelyek adatbázisokkal mûködnek együtt. Erre a célra a C# az ADO.NET-et használja, amely az ADO utódja. A könyvben az SQL Server adatbázisokhoz való kapcsolódás részleteit tanuljuk meg; az SQL Server a Microsoft elsõ számú adatbázisszoftvere. A Microsoft elkötelezte magát, hogy erõforrásait arra fordítja, hogy a .NET-et technológiai társadalmunk mindent átható elemévé tegye – tehát a .NET-et csak saját felelõsségünkre hagyhatjuk figyelmen kívül. Alaptételünk, hogy meg kell tanulnunk a .NET használatát, ha versenyképesek kívánunk maradni a ma (és a holnap) piacán. Dióhéjban, a .NET egy teljesen új keretrendszer különféle alkalmazások készítéséhez. Használatával többek között Windows-alkalmazásokat és webes programokat írhatunk, illetve olyan rendszereket fejleszthetünk, amelyek az Interneten társalgó, egymáshoz kapcsolódó szolgáltatásokból állnak. Az említetteken kívül a .NET-tel kéziszámítógépeken és mobiltelefonokon futó programokat is készíthetünk. Bár más nyelvek is lehetõvé teszik ilyen alkalmazások fejlesztését, a .NET-et kezdettõl fogva úgy tervezték, hogy illeszkedjen a mindent átszövõ hálózathoz.
xvi
C# adatbázis-programozás mesteri szinten
A .NET keretrendszer (.NET Framework) három alapvetõ összetevõbõl áll: Fejlesztõnyelvek és -eszközök .NET programokat a következõ fejlesztõnyelveken írhatunk: C#, Visual Basic .NET (VB .NET) és Managed C++. A Microsoft egy gyors alkalmazásfejlesztést (Rapid Application Development, RAD) lehetõvé tevõ eszközt is készített, amely a Visual Studio .NET (VS .NET) névre hallgat, és egyesített fejlesztõkörnyezetet (integrated development environment, IDE) bocsát a programfejlesztõk rendelkezésére. A kötetben a C# nyelvet és a VS .NET-et fogjuk használni. Közös futásidejû környezet A közös futásidejû környezet (Common Language Runtime, CLR) felügyeli a futó kódot, és olyan szolgáltatásokat biztosít, mint a memória- és szálkezelés (amely lehetõvé teszi, hogy párhuzamosan egyszerre több feladatot hajtsunk végre), illetve a távkapcsolat (remoting; ennek révén engedélyezhetjük egy alkalmazás objektumai számára, hogy egy másik alkalmazás objektumaival kommunikáljanak). A CLR szigorúan ügyel a végrehajtható kód biztonságára és pontosságára is, hogy megakadályozza az illetéktelen módosítást. Keretrendszeri alaposztálykönyvtár A keretrendszer alaposztálykönyvtára (Framework Base Class Library) a Microsoft által írt és a programjainkban felhasználható kódok terjedelmes gyûjteménye. Egyéb szerepei mellett a keretrendszeri alaposztálykönyvtár Windows-alkalmazások fejlesztéséhez, lemezen található fájlok és könyvtárak eléréséhez, adatbázisokkal való együttmûködéshez, illetve hálózaton keresztül adatok küldéséhez és fogadásához tartalmaz kódokat.
Kinek szánjuk ezt a könyvet? A kötet olyan programozóknak íródott, akik már ismerik a C# nyelvet, és mindent tartalmaz, ami ahhoz szükséges, hogy mesteri szinten adatbázisprogramokat írjunk C# nyelven. Nem tételezünk fel elõzetes tapasztalatot az adatbázisok terén, de ha jártasak vagyunk az olyan adatbázisprogramok kezelésében, mint az SQL Server vagy az Oracle, gyorsabban haladhatunk. Megjegyzés
Ha nem ismerjük a C# nyelvet, érdemes elõbb elolvasnunk a Mastering Visual C# .NET címû kötetet a Sybextõl (2002) vagy a C# mesteri szinten 21 nap alatt címû könyvet, amelyet magyarul a Kiskapu Kiadó adott ki 2004-ben.
Hogyan használjuk a könyvet? A könyv három részre oszlik. Az elsõ részben (Bevezetés az ADO.NET és az adatbázisok világába) mindent megtanulunk, amit az adatbázisokról tudni kell. Megismerkedünk az ADO.NET-tel is, amely lehetõvé teszi C# programjainknak, hogy együttmûködjenek egy adatbázissal. A második részben (Az ADO.NET adatbázis-programozás alapjai) az alapoktól végigvesszük, hogyan programozhatunk C# nyelven az ADO.NET-tel. A harmadik rész (Haladó adatbázis-programozás az ADO.NET-tel) az alapokon túllépve a profi adatbázis-programozók számára szükséges programozási módszereket tanítja meg.
C# adatbázis-programozás mesteri szinten Az alábbiakban részletesebben ismertetjük, mit tartalmaznak az egyes fejezetek: Az 1. fejezetben (Bevezetés az ADO.NET adatbázis-programozásba) azt mutatjuk meg, hogyan használható az ADO.NET a C# programokban adatbázisokkal való együttmûködésre. Megismerkedünk a Microsoft RAD eszközével, a Visual Studio .NET-tel is, végül pedig bemutatjuk, hogyan segítheti munkánkat a .NET-hez és az SQL Serverhez adott terjedelmes Microsoft-dokumentáció. A 2. fejezet (Bevezetés az adatbázisok világába) részletesen bemutatja, mik azok az adatbázisok, és hogyan használhatók információk tárolására. Megismerkedünk az SQL Server Northwind adatbázisával, amely a képzeletbeli, élelmiszereket forgalmazó Northwind Company adatait tárolja. Ez egyike azoknak a mintaadatbázisoknak, amelyeket az SQL Server a szokásos telepítés során a gépre másol. A 3. fejezetben (Bevezetés az SQL használatába) az SQL (Structured Query Language) használatát tanuljuk meg az adatbázisok elérésére. Megnézzük, hogyan alkalmazható az SQL a Northwind adatbázissal kapcsolatban, és hogyan nyerhetünk ki vele adatokat az említett adatbázisból, illetve hogyan módosíthatjuk azokat. A 4. fejezet (Bevezetés a Transact-SQL programozásba) a Microsoft Transact-SQL segítségével történõ programozással ismertet meg. A Transact-SQL lehetõvé teszi, hogy olyan programokat írjunk, amelyek a szabványos programozási szerkezetek – változók, feltételes utasítások, ciklusok, eljárások és függvények – mellett SQL utasításokat is tartalmaznak. Az 5. fejezetben (Az ADO.NET osztályok áttekintése) az ADO.NET osztályait tekintjük át. Emellett megvizsgálunk egy C# programot is, amely egy adatbázishoz kapcsolódik, helyben elraktározza a sorokat, leválik az adatbázisról, majd adatbázis-kapcsolat nélkül beolvassa a helyi sorok tartalmát. Az, hogy helyi másolatot tárolhatunk egy adatbázis rekordjairól, az ADO.NET egyik legnagyobb erõssége. A 6. fejezet (Ismerkedés a Windows-alkalmazásokkal és az ADO.NET-tel) a Windows-alkalmazásokat tárgyalja, amelyek olyan programok, amelyek kihasználják, hogy a Windows olyan grafikus elemeket biztosít, mint a menük, szövegmezõk, választógombok stb., amelyekbõl könnyen használható grafikus felület építhetõ, illletve hogy az adatbevitelre a billentyûzet helyett az egeret is használhatjuk. A fejezetben megtanuljuk, hogyan készíthetünk Windows-alkalmazásokat, amelyek együttmûködnek a Northwind adatbázissal. A 7. fejezetben (Kapcsolódás adatbázisokhoz) az adatbázisokhoz való kapcsolódás részleteirõl tanulunk. Három kapcsolati osztály létezik: az SqlConnection, az OleDbConnection és az OdbcConnection. Az SqlConnection osztály példányait (objektumait) az SQL Server adatbázisokhoz való csatlakozásra használjuk, az OleDbConnection objektumokkal olyan adatbázisokhoz – például Oracle vagy Access – kapcsolódunk, amelyek támogatják az OLE DB-t (Object Linking and Embedding for
xvii
xviii
C# adatbázis-programozás mesteri szinten
Databases, Objektumcsatolás és -beágyazás adatbázisok számára), az OdbcConnection osztályt pedig arra vesszük igénybe, hogy olyan adatbázisokkal vegyük fel a kapcsolatot, amelyek támogatják az ODBC-t (Open Database Connectivity, Nyílt adatbázis-összekapcsolhatóság). Végeredményben tehát minden adatcsere, amit egy adatbázissal folytatunk, valamilyen kapcsolati (Connection) objektumon keresztül zajlik. A 8. fejezet (Adatbázisparancsok végrehajtása) az adatbázisparancsok végrehajtásának részleteivel ismertet meg. Command (Parancs) objektumokkal SQL utasításokat (SELECT, INSERT, UPDATE, DELETE) hajthatunk végre, de meghívhatunk tárolt eljárásokat, vagy kinyerhetjük egy adott tábla összes sorát és oszlopát is. A 9. fejezetben (Eredmények beolvasása DataReader objektumokkal) azt tanuljuk meg, hogyan használhatjuk a DataReader objektumokat az adatbázisból kinyert adatok olvasására. A DataReader objektumokkal olyan rekordokat olvashatunk el, amelyeket egy Command objektummal nyertünk ki egy adatbázisból. A 10. fejezet (Adatok tárolása DataSet objektumokban) azt vizsgálja, hogyan tárolhatjuk az adatbázisokból kinyert adatokat DataSet objektumok segítségével. Ezen objektumok teszik lehetõvé, hogy az adatbázis tábláiról és rekordjairól másolatot készíthessünk, majd az adatbázisról leválva a helyi másolattal dolgozzunk. A 11. fejezetben (Adatok módosítása DataSet objektumokkal) megnézzük, hogyan módosíthatjuk a sorokat egy DataSet-ben, és hogyan vihetjük be a változásokat az adatbázisba a DataAdapter objektumok segítségével. A 12. fejezet (Kapcsolódó adatok keresése és módosítása) témája az, hogy miként mozoghatunk a táblák kapcsolódó adatai között, hogyan módosíthatjuk azokat a memóriában, és végül hogyan vihetjük be a változásokat az adatbázisba. A 13. fejezetben (DataView objektumok használata) arról tanulunk, hogyan használhatunk DataView objektumokat a rekordok szûrésére és rendezésére. Ezen objektumok elõnye, hogy egy Windows- vagy ASP.NET alkalmazásban grafikus elemekhez kapcsolhatók. A 14. fejezetben (Haladó tranzakcióvezérlés) a haladó tranzakcióvezérlés részleteiben merülünk el, az SQL Server és az ADO.NET használatával. A 15. fejezet (Ismerkedés a webalkalmazásokkal: ASP.NET) az ASP.NET alapjaival ismertet meg, valamint megtanuljuk, hogyan készíthetünk ASP.NET programokat a Visual Studio .NET-tel. A 16. fejezetben (XML-támogatás az SQL Serverben) az SQL Server kiterjedt XMLtámogatásával ismerkedünk meg, és azt is megnézzük, hogyan tárolhatunk XML-tartalmat XmlDocument és XmlDataDocument objektumokkal egy C# programban.
C# adatbázis-programozás mesteri szinten A 17. fejezetben (Webszolgáltatások) egy egyszerû webszolgáltatást készítünk, vagyis olyan szoftverelemet, amelyet a Világhálón használhatunk, például olyan szolgáltatást hozhatunk létre vele, amely lehetõvé teszi, hogy egy vállalat egy másik cégnek rendelést küldhessen az Interneten keresztül, XML formátumban.
A példaprogramok letöltése A kötetben számos példaprogramot találunk, amelyek a könyvben szereplõ fogalmakat illusztrálják. Ezeket az alábbiak szerint számoztuk és láttuk el címmel: 1.1. kódszöveg
FirstExample.cs
A kódszöveg címe megegyezik a hozzá tartozó fájl nevével, tehát a fenti esetben a FirstExample.cs az 1.1. kódszöveg fájljának neve. A Sybex webhelyérõl (www.sybex.com) és természetesen a Kiskapu Kiadó webhelyérõl is (http://kiado.kiskapu.hu/93) letölthetõ egy Zip fájl, amely tartalmazza a könyvben található programokat. A Zip állomány többek között a WinZip programmal csomagolható ki. Amikor kicsomagoljuk a fájlt, minden fejezethez egy-egy könyvtár jön létre, amelyekben az alábbi alkönyvtárak találhatók: programs sql VS. NET projects xml Megjegyzés
Ez tartalmazza a C# programokat. Itt találhatók az SQL parancsfájlok. Ebben vannak a Visual Studio .NET projektek. Itt találjuk az XML fájlokat.
Nem minden fejezet hivatkozik programokra, SQL parancsfájlokra stb., ezért az említett alkönyvtárak nem minden fejezet könyvtárában találhatók meg.
xix