AspNet.sk     Diskusné fóra     Vitajte v QuickStarts     ASP.NET     Silverlight     Ako môžem...? (en)     Class prehliadač Príklady chcem v ...   
Menu
Skip Navigation Links.
Späť na ASP.NET príručku

ASP.NET QuickStart Príručka

Práca s databázami v prostredí Visual Web Developer 2005 Express Edition

Visual Web Developer 2005 Express Edition zahŕňa SQL Server 2005 Express Edition, voľne dostupnú edíciu SQL Server 2005 zameranú pre využitie polo-profesionálnymi alebo amatérskymi vývojármi, ktorí potrebujú jednoduché databázové riešenie pre vytváranie aplikácií. Pretože SQL Server Express podporuje kompletný programovací model SQL Servera, ako SQLCLR, T-SQL, uložené procedúry, pohľady, spúšťače a dátový typ XML, môžete sa oboznámiť s touto technológiou použitím SQL Server Express, a neprísť o výhodu neskoršieho pohodlného prechodu na vyššiu úroveň SQL servera (SQL Server Enterprise Edition). SQL Server Express sa dá jednoducho stiahnuť a nastaviť (Zaberá menej ako 36MB) a je zahrnutý v aj v riešeniach Visual Studio 2005 a v Visual Web Developer 2005.

Visual Studio zahŕňa nástroje pre správu databázy ako Database Explorer a Query Builder, ktoré môžu byť použité pri databázach SQL Server Express. Visual Studio tiež podporuje nový prístup k databázam založeným na súboroch, ktoré môžu byť súčasťou projektu. Spolu vytvárajú Visual Studio 2005 a SQL Server 2005 Express kompletné riešenie pre budovanie a nasadzovanie dátových webových aplikácií, ktoré zahŕňajú nasledujúce vlastnosti:
  • Databáza ako prvok projektu (súbor v projekte)
  • Lokálne databázové spojenia
  • Riadenie prostredníctvom Database Explorer
  • Pripojovacie reťazce(connection strings) podporujúce relatívne cesty
  • Podpora XCopy nasadzovania
  • Integrovaná podpora ladenia
Sekcia opisuje prístup k databázam založený na súboroch vo Visual Studiu 2005 a spôsob ako vytvoriť a použiť databázy v prostredí dizajnéra.

Visual Web Developer a údaje

Visual Web Developer poskytuje množstvo nástrojov na prácu s databázami použitými vo vašich webových aplikáciách. Môžete sa jednoducho pripojiť k databázam, alebo vytvárať prípadne prezerať databázové diagramy alebo schémy s použitím Database Explorer-u. Tiež môžete vytvárať dopyty na databázy a napĺňať ich prostredníctvom komponentov VS Query Builder (tvorba dopytov) a Query Results grid(zobrazenie výsledkov dopytu). Vytvorenie novej databázy (použitím lokálneho súboru) je tiež vystavené ako projektová položka (popísané nižšie)

Hneď ako vytvoríte spojenie s databázou vo Visual Web Developer-i, môžete presúvať databázové tabuľky priamo na stránky, čím vytvoríte dátovo-viazaný prvok GridView. Visual Web Developer automaticky vytvára asociovaný prvok dátového zdroja nastavený na operácie Select, Update, Insert a Delete nad tabuľkou. Uvedená skratka Vám môže ušetriť veľa práce oproti manuálnemu vytváraniu dátového zdroja, a môžete jednoducho nahradiť GridView iným a vhodnejším dátovo-viazaným ovládacím prvkom, ktorý sa hodí do vášho scenáru.

Lokálne a serverové databázy

Pravdepodobne už poznáte serverové databázy a pripojovacie reťazce. V spomínanej konfigurácii, databázový server, ako napr. SQL Server 2005 asociuje databázové menu na databázový súbor, ktorý je pripojený a udržovaný serverom. Môžete sa k nemu pripojiť prostredníctvom reťazca (connection string), ktorý určuje meno servera, názov databázy a autentizáčnú schému, na príklad:
"server=(local)\SQLExpress;database=Pubs;Integrated Security=true"
Naviac Visual Studio 2005 podporuje databázy, ktoré sú pridané ako súbor do adresára App_Data aktuálneho projektu. Adresár App_Data je bezpečné miesto pre ukladanie dátových súborov, pretože obsah tohto adresára nikdy nemôže byť odoslaný ako odpoveď na požiadavky klienta. Je to zároveň odporúčané umiestnenie pre XML súbory, a iné dátové úložiská. Lokálna SQL Express databáza má príponu .MDF (MyDatabase.MDF), ktorá je zároveň štandard podporovaný SQL serverom. Keď je pripojená k serveru, má tiež asociovaný súbor logu, ako napr. "MyDatabase_log.LDF". Databázový súbor a súbor logu by mali byť presúvané vždy spolu.

Lokálna súborová databáza je pripojená na SQL Server Express dynamicky prostredníctvom použitia connection string-u s relatívnou cestou. Relatívna cesta zaistí, že aplikácia môže byť presunutá na iné umiestnenie bez prerušenia spojenia s databázou. Connection string s relatívnou cestou vo webovej aplikácie sa zapisuje nasledovne:
"server=(local)\SQLExpress;AttachDbFileName=|DataDirectory|MyDatabase.mdf;Integrated Security=true;User Instance=true"
Uvedený pripojovací reťazec má dve dodatočné vlastnosti. Vlastnosť AttachDbFileName určuje umiestnenie databázového súboru, ktorý sa má dynamicky pripojiť na SQL Server Express keď sa vytvára spojenie. Hoci vlastnosť môže akceptovať aj úplne-kvalifikovanú (absolútnu) cestu k databáze, príklad používa syntax |DataDirectory|, ktorá bude nahradená absolútnou cestou k databáze (do adresára App_Data) počas behu aplikácie. Práve toto je vlastnosť, ktorá umožňuje presunúť aplikáciu na iné umiestnenie bez prerušenia spojenia. Vlastnosť User Instance=true diktuje spôsob akým sa SQL Server pripojí k databáze. V našom prípade, SQL Server Express vytvorí nový proces, ktorý sa tvári ako používateľ otvárajúci spojenie, aby sa pripojil k databáze. A ASP.NET aplikácii uvedený používateľ bude štandardne lokálne ASPNET-ové konto alebo Sieťová služba, čo je závislé od operačného systému. Samostatná inštancia používateľa SQL Serveru je požadovaná pri bezpečnom pripojení databázových súborov z neadministratívneho účtu (akým je účet ASP.NET).

Dôležité: Pretože všetky ASP.NET-ové aplikácie bežia pod tým istým procesným kontom, všetky aplikácie pripoja lokálne databázy k tej istej inštancii SQL Server Express. To znamená, že všetky aplikácie budú mať rovnaký prístup ku všetkým pripojeným databázam, nezávisle od individuálnej aplikácie, ktorá pripojila databázu na začiatku. Aby ste aplikáciu izolovali od ostatných, ktoré používajú SQL Server Express, musíte spustiť každú aplikáciu na vlastnom pracovnom procese, alebo na aplikačnom poole (pod IIS 6). Z tohto dôvodu, lokálne serverové databázy sú považované za zjednodušenie v čase vývoja, a nie ako náhrada za serverové databázy v zdieľanom databázovom scenári. Pre viac informácii ako presúvať obsah z lokálnej databázy na server, pozrite článok o nasadení na konci tejto sekcie.

Ďalšie dôležité pravidlo je, že žiadni dvaja používatelia nemôžu byť pripojení na lokálnu databázu v tom istom čase. Keď navrhujete aplikáciu vo Visual Studiu, dizajnér sa automaticky stará o uvoľňovanie spojenia, aby Visual Studio aj ASP.NET mohli zdieľať prístup k lokálnemu databázovému súboru (napríklad keď spúšťame aplikáciu počas odlaďovania zvnútra dizajnéra).

Tvorba lokálnej databázy

Môžete jednoducho vytvoriť lokálnu databázu vo Webovom projekte vo Visual Studiu. Ak ste nainštalovali SQL Server Express zároveň s Visual Studiom, môžete použiť nasledujúce kroky na vytvorenie lokálnej databázy, na pridávanie tabuliek, a napĺňanie dát.

Keď vytvárate lokálnu databázu:
  1. Kliknite pravým tlačidlom myši na Solution Explorer a zvoľte možnosť "Add New Item...".
  2. Vyberte položku "SQL Database" a pomenujte ju, napr. "Database.mdf".
  3. Visual Studio sa spýta, či pridať zvolený súbor do adresára App_Data. Kliknite "Yes".
  4. Visual Studio pridá súbor a automaticky sa pripojí na databázu s použitím Database Explorer.
Keď pridávate tabuľku:
  1. Kliknite pravým tlačidlom myši na uzol Tables v Database Explorer-i a zvoľte možnosť "Add New Table".
  2. Zadajte mená a typy stĺpcov tabuľky, voliteľne nastavte iné vlastnosti stĺpcov. Aby ste vytvorili databázu kontaktov (príklad), pokračujte nasledujúcimi krokmi
  3. Pomenujte prvý stĺpec na "ContactID" a nastavte údajový typ na int. Odznačte checkbox "Allow Nulls" pre tento stĺpec.
  4. Pravým tlačidolm kliknite na šedý obdĺžnik so šípkou vedľa stĺpca ContactID a zvoľte možnosť "Set Primary key".
  5. V zozname vlastnosti Stĺpca, kliknite na uzol "Identity Specification" a nastavte vlastnosť "Is Identity" na "Yes".
  6. Nastavte meno druhého stĺpca na "ContactName" a nastavte dátový typ na "varchar(50)". Nechajte checkbox "Allow Nulls" označený.
  7. Uložte tabuľku stlačením Ctrl-S a nazvite ju menom "Contacts". Stlačte OK a uložte tabuľku.
  8. Zavrite okno tvorby tabuľky.

Ak potrebujete neplniť tabuľku údajmi:
  1. Pravým tlačidlom kliknite na uzol tabuľky (na príklad, "Contacts") v Database Explorer a vyberte možnosť "Show Table Data" .
  2. Vložte údaje pre riadky mriežky. Ak ide o predchádzajúci príklad s kontaktmi, môžete vložiť hodnoty do stĺpca ContactName a databáza automaticky vygeneruje zodpovedajúci primárny kľúč.
  3. Zavrite okne s mriežkou.

Viazanie na lokálnu databázu

Aby ste sa naviazali na lokálnu databázu, môžete nastaviť dátový zdroj na pripojenie prostredníctvom connection stringu s relatívnou adresou. Aby ste jednoducho pripojili databázu SQL Server Express na SqlDataSource a prvok GridView, postupujte podľa uvedených krokov:
  1. Dva krát kliknite na stránku v Solution Explorer-i, na príklad "Default.aspx". Visual Studio otvorí súbor.
  2. Vyberte záložku Design View pod zobrazovacou oblasťou aby ste sa prepli do zobrazovacieho režimu.
  3. Dva krát kliknite na databázový súbor v Solution Explorer-i, napríklad "Database.mdf". Visual Studio otvorí Database Explorer pre vybrané spojenie.
  4. Rozbaľte uzol Tables, aby ste uvideli tabuľky v databáze.
  5. Pretiahnite tabuľku z Database Explorer na stránku. Visual Studio automaticky vytvorí GridView viazaný na prvok SQlDataSource.
  6. Rozbaľte Smart Task Panel na prvku GridView a aktivujte stránkovanie, usporadúvanie a editáciu na mriežke.
  7. Stlačte Ctrl-F5 aby ste spustili stránku (bez odlaďovania).
Príklad nižšie ukazuje prvky GridView a SqlDataSource napojené na lokálnu databázu. Aby ste mohli spustiť príklad, procesné konto ASP.NET musí mať pridelené čítacie a zapisovacie privilégia na MDF a LDF súbory v adresári ~/App_Data. Aby ste pridelili oprávnenia, postupujte nasledujúcimi krokmi:
  1. Vyberte súbor ~/App_Data/Database.MDF vo Windows Explorer a vyberte možnosť Properties
  2. Zvoľte záložku Security a kliknite na Add...
  3. Kliknite na Locations..., vyberte názov vášho počítača (na vrchole zoznamu), and kliknite OK
  4. V textovej oblasti objektových mien, napíšte meno procesného konta ASP.NET. Zvyčajne je to "Network Service" na IIS 6.0 alebo "ASPNET" na IIS 5.x
  5. Zaškrtnite "Read" a "Write" v stĺpci povolení(Allow column) a kliknite OK
  6. Opakujte aj pre súbor LDF a adresári App_Data, ak existuje
Ak ste vytvorili aplikáciu na lokálnom počítači s použitím Visual Studia, nasledujúce povolenia budú poskytnuté adresáru App_Data automaticky. Ak potrebujete zmeniť povolenia na databázový súbor potom, ako bol pripojený, budete musieť vypnúť aplikačnú doménu pred tým, ako nové oprávnenia začnú platiť. Pozrite na informácie o "app_offline.htm" nižšie pre inštruktáž, ako vypnúť ASP.NET aplikáciu.

VB Binding to a Local Database
Run Sample View Source

Nasadenia ASP.NET aplikácie

Výhoda lokálnej databázy je v tom, že môže byť jednoducho presúvaná ako súčasť aplikácie na iné umiestnenie alebo stroj (ale len vtedy, keď druhý stroj tiež používa SQL Server Express). Na presunutie databázy, musí byť súbor odomknutý. Kým je k databáze pripojený dizajnér, alebo aplikácia, súbor zostáva zamknutý. Aby sta ho odomkli, všetky existujúce pripojenia k databáze musia byť uzatvorené. Môžete uzatvoriť spojenia s použitím nasledujúcich techník:
  • Ak ASP.NET má otvorené spojenia, môžete vypnúť aplikačnú doménu pridaním súboru pomenovaného "app_offline.htm" do koreňového adresára Webovej aplikácie. Toto spôsobí, že všetky požiadavky na aplikáciu sú presmerované na uvedený súbor (a vracajú odpoveď 404). Aby ste dovolili aplikácii reštartovať sa, odstráňte tento súbor. Všimnite si, že jednoduché uzatvorenie aplikácie neodstráni súborový zámok, pretože štandardne ADO.NET udržuje aktívne spojenia v connection pool, ktorý nie je ovplyvnený vypnutím aplikačnej domény.
Visual Studio poskytuje vlastnosť Copy Web na presunutie aplikačných súborov z pracovného adresára priamo na cieľový server, použitím xcopy, FTP, alebo FrontPage Server Extensions. Cieľová stanica môže byť lokálna, alebo vzdialená. Aby ste vyvolali Copy Web, zvoľte možnosť "Website > Copy Web Site..." z menu.

Hoci môžete ľubovoľne presúvať databázu s použitím Copy Web, alebo pomocou xcopy resp FTP, cieľová stanica musí mať spustený SQL Server Express (s tým istým názvom inštancie), aby aplikácia mohla pracovať. Ako je spomenuté vyššie, všetky aplikácie bežiace cez ASP.NET sa pripájajú na tú istú inštanciu SQL, všetky aplikácie na cieľovej stanici by si mali vzájomne dôverovať. Na staniciach, kde by aplikácie nemali vidieť to ostatných databáz, sa odporúča riešenie založené na serverových databázach (použitím SQL autentifikácie alebo iných izolačných techník) namiesto lokálneho riešenia. Ak používate SQL Server Express ako vývojový nástroj, budete musieť presunúť obsah vašej Express databázy na server v procese nasadzovania.
Microsoft .NET Framework SDK QuickStart Tutorials Version 2.0
Copyright © 2005 Microsoft Corporation. All rights reserved.
Preklad do slovenského jazyka - Copyright © 2005 - 2007 www.aspnet.sk, www.qsh.sk
Pošlite komentár k tejto stránke
Copyright © 2002 - 2008 Chastia, spol. s r. o., Igor Stanek, Designed by Lacino
Portál je hostovaný na serveroch firmy Quantasoft - www.qsh.sk.