ASP.Net's andmete kasutamine ADO.Net abil

From ICO wiki
Jump to navigationJump to search

Järgnev jutt on jällegi pärit "Andmebaasipõhiste veebirakenduste arendamine Microsoft Visual Studio 2008 ja SQL Server 2008 baasil" õppematerjalist (lk 455-456)

Andmete kasutamine ADO.NET abil

Selleks, et andmetele ligi pääseda, tuleb luua ühendus andmebaasiga. Ühenduse loomiseks on vaja andmebaasi. Andmebaasile viitamiseks kasutatakse ühendusteksti (ConnectionString). Kuna peale rakenduse valmimist võib administraator tõsta andmebaasi mõnda teise serverisse või anda andmebaasile teise nime või muuta turvameetmeid, peab ühendustekst olema administraatorile ehk rakenduse hooldajale lihtsasti kättesaadav. Seega ei saa ühendusteksti kirjutada tekstina otse koodi. Parim koht selle hoidmiseks on konfiguratsioonifail web.config. ASP.NET konfiguratsioonis on loodud isegi eraldi konteinerelement ühendustekstide hoidmiseks. configuration elemendi alamelemendi nimeks on connectionStrings. Ühendustekst nimega yhendusTxt võiks välja näha midagi sarnast järgnevaga:

<connectionStrings>
<add name="yhendusTxt" connectionString="packet size=4096;uid=KASUTAJANIMI; pwd=PAROOL;data source=dotnet;persist security info=False;initial catalog=KASUTAJANIMI" providerName="System.Data.SqlClient" />
</connectionStrings>

Kui on kasutada rohkem kui üks andmebaas, võib siia ühendustekste juurde lisada. Suurema turvalisuse saavutamiseks on võimalik ka teatud osade sh connectionStrings krüpteerimine konfiguratsiooni failis.

Ühendusteksti kasutamiseks tuleb koodis sellele viidata. Selleks on kaks võimalust:

  • Esiteks võime seda teha aspx lehel andmeallika kirjelduses.
<asp:SqlDataSource id="andmeallikas" runat="server" ProviderName="System.Data.SqlClient" ConnectionString=<%#
ConfigurationManager.ConnectionStrings("yhendusTxt").ConnectionString %>’
SelectCommand="SELECT TOP 100 ToodeID, Nimi, Hind FROM toode"/>
  • Sellest pikast lausest on olemas ka lühendatud kuju:
<asp:sqldatasource id="andmeallikas " runat="server" ProviderName="System.Data.SqlClient" ConnectionString="<%$ ConnectionStrings:yhendusTxt %>" SelectCommand="SELECT TOP 100 ToodeID, Nimi, Hind FROM toode"/>

Saadud andmete näitamiseks võimalik kasutada nt tabeli vaadet (GridView).

<asp:GridView ID="gw" runat="server" AutoGenerateColumns="True" DataSourceID="andmeallikas" EmptyDataText="Pole midagi näidata" />

Nagu näete, on võimalik lugeda andmebaasist andmeid tabelivaatesse ilma ridagi koodi kirjutamata. Kui kasutate veebilehe loomiseks graafilisi abivahendeid nagu VisualStudio, genereeritakse teile ka eelpool kirjeldatud read aspx failidesse.