Jau kādu laiciņu ASP.NETā eksistē iespēja vienkāršot datu iegūšanu no dažādiem datu avotiem. Sākot ar ASP.NET 2.0 parādījās jēdziens "datu avots" (DataSource) un standartā ir iekļauts atbalsts pašiem izplatītākiem datu uzglabāšanas avotiem (SqlDataSource, AccessDataSource, ObjectDataSource, XmlDataSource). Specifiskākajos gadījumos, jums ir iespēja uzrakstīt savu datu avotu.
Man personīgi izveidojās tāds priekšstats, ka šim momentam nepievērš pietiekamu uzmanību. Jāsamierinās ar dzīves realitāti, turpinām rakstīt, kā esam pieraduši. Iemūžināsim šo, varbūt, kāds to pamanīs un pielietos. Apskatīsim pašu vienkāršāko gadījumu.
Uzdevuma scenārijs:
- Dati tiek uzglabāti SQL serverī;
- Ir jāpieslēdzas pie SQL servera un izmantojot procedūru GetEventList jāizpilda vaicājums;
- Iegūtie dati ir jāizvada brīvā formā.
Pirmajā solī, konfigurācijas failā (Web.config) piereģistrējam pieslēgumu pie datu bāzes.
<configuration>
…
<connectionStrings>
<add
name="dbConnectionString"
connectionString="…"
providerName="System.Data.SqlClient" />
</connectionStrings>
…
</configuration>
"connectionStrings" sekcija ir
vel viens ASP.NET 2.0 jaunievedums. Visai labs veids, kā atdalīt datu bāzes konfigurāciju no visām pārejām.
Nākamajā solī veidojam .ASPX lapu, un kodā piereģistrējam SQL datu avotu. Tas varētu izskatīties aptuveni tā:
…
<asp:SqlDataSource
EnableCaching="true"
CacheDuration="15"
ID="sqlDataSource"
runat="server"
ConnectionString="<%$ ConnectionStrings:dbConnectionString %>"
SelectCommand="GetEventList"
SelectCommandType="StoredProcedure"
/>
…
Apskatīsim sintaksi detalizētāk:
ConnectionString="<%$ ConnectionStrings:dbConnectionString %>" ar šo rindiņu piesaistam datubāzes pieslēgšanas aprakstu ar datu iegušanas objektu. Ja tas ir jāraksta kodā, tas varētu izskatīties šādi:
…
sqlDataSource.ConnectionString =
System.Configuration.ConfigurationManager.ConnectionStrings["dbConnectionString"].ConnectionString;
…
SelectCommand="GetEventList"
SelectCommandType="StoredProcedure" - datu iegūšanai tiks izmantota procedūra GetEventList.
EnableCaching="true"
CacheDuration="15" - vaicājums tiks iekešots uz 15 sekundēm.
Noslēgumā, iegūtos datus izvadam brīvā formā, izmantojot "Repeater" kontroli, kura ir piesaistīta datu avotam "sqlDataSource"
…
<asp:Repeater
ID="EventList"
runat="server"
DataSourceID="sqlDataSource">
<HeaderTemplate />
<ItemTemplate>
<ItemTemplate>
<FooterTemplate />
</asp:Repeater>
…
Tas arī viss. Apliek tikai pārbaudīt.
P.S.
Jāpiemin, ka Visual Studio 2005/2008 visas šīs darbības var izdarīt vizuāli.
Posted
Mar 18 2008, 02:16 PM
by
andrejs.mamontovs