..


Sponsede Lenker

Administrere tilkoblinger til databaser med ADO.NET

I forrige leksjon så vi hvordan å knytte en statisk samling (også kjent som in-memory) til ulike server-side-kontroller. Selv om denne type operasjon kan være nyttig i visse sammenhenger, men kommer ofte behovet for å knytte de ulike kontrollene til samlinger av elementer fra andre kilder, ofte fra en database.

I tillegg til å inkludere klasse biblioteker for utvikling av desktop-applikasjoner (Windows Forms) og for forvaltningen av HTTP-forespørsler (ASP.NET), omfatter. NET Framework også et bibliotek som støtter tilkobling til en rekke databaser og er kalt ADO.NET (Active Data Objects. NET). Denne teknologien er basert på tre hovedfunksjoner: tilkobling til en database, spør en database, og resultater ledelse.

Når du ønsker å samhandle med en database må du koble til den. Tilkoblingen krever identifisering av plasseringen av databasen, men kan også be om sikkerhetsstyring og andre komplekse hviler. Alle disse elementene er håndtert som en del av prosessen med å koble til en database. Forbindelsen informasjon er vanligvis gått som en streng, der innholdet brukes til å stille ulike parametere.

Mens tidligere måtte du manuelt skrive kode for å få tilgang til en database via ADO.NET ved å spesifisere hvilken type database du vil koble deg og automatisk sette egenskaper er egnet for denne typen tilkobling.

Det er flere støttet database typer:

  • ODBC Data Provider
  • OLE DB Dataleverandør
  • OracleClient Dataleverandør
  • SqlClient Dataleverandør
  • SQL Server CE Data Provider
Disse gaven typer definert i nevnte Machine.config fil





 <configuration>

 





 <configSections>

 





 <Seksjon name = "System.Data.Odbc"

 





 type = "







 System.Data.Common.DbProviderConfigurationHandler, ..."/>

 





 <Seksjon name = "System.Data.OleDb" type = "







 System.Data.Common.DbProviderConfigurationHandler, ..."/>

 





 <Seksjon name = "System.Data.OracleClient" type = "







 System.Data.Common.DbProviderConfigurationHandler, ..."/>

 





 <Seksjon name = "System.Data.SqlClient" type = "







 System.Data.Common.DbProviderConfigurationHandler, ...

 



 "/>

 





 <configSections />

 





 <system.data>

 





 <DbProviderFactories>

 





 <Legg name = "Microsoft SQL Server Compact Data Provider" invariant = "







 System.Data.SqlServerCe.3.5 "

 





 type = "System.Data.SqlServerCe.SqlCeProviderFactory ..." />

 





 </ DbProviderFactories>

 





 </ System.Data> <







 / Konfigurasjon>>



For å opprette database forbindelsen må derfor bruke riktig komponent. Med tilgjengeligheten av en forbindelse kan du bruke til å få tilgang til databasen. For eksempel, hvis vår lokale datamaskinen som er vert en SQL Server-database kalt DB_TEST må inngå en eventuell vår søknad følgende tilkoblingsstrengen






 <configuration>

 





 <connectionStrings>

 





 <Legg name = "TEST"

 





 connectionString = "Server = (lokal);







 Integrated Security = SSPI; DB_TEST database = "/>

 





 </ ConnectionStrings>







 </ Konfigurasjon>



På dette punktet kan du åpne forbindelsen og få databasen til å utføre operasjoner som vi ønsker.

De fleste databaser støtte for SQL (Structured Query Language) for å lage spørringer, modifikasjoner, nye innsettinger og slettinger av data. Disse kommandoene har vanligvis en form som ligner på følgende

 



 SELECT * FROM kunder hvor Name = 'Smith'

 
hvor Kunden er en tabell i en database. Denne kommandoen tar en liste over kunder hvis etternavn er Smith. Å få disse data innen vår søknad av en vi skrive følgende kode





 klasse TestDBApp







 {



  



 static void main ()



  



 {



    



 DbProviderFactory DbProviderFactory DbProviderFactories.GetFactory = ("System.Data.SqlClient");



    



 bruker (DbConnection conn = dbProviderFactory.CreateConnection ())



    



 {



      



 string s = ConfigurationManager.ConnectionStrings ["Test"] ConnectionString.;



      



 conn.ConnectionString = s;



      



 conn.Open ();



      



 DbCommand cmd = conn.CreateCommand ();



      



 cmd.CommandText = "SELECT * FROM kunder hvor Name = 'Smith'";



      



 DbDataReader leseren = cmd.ExecuteReader ();



      



 / / Bruk leseren tilgang til data



    



 }



  



 }







 }



Gjennomføring av kommandoen (cmd) med ExecuteReader metoden fører til at sending av våre forespørsler til databasen. Resultatene i dette tilfellet er oppnådd gjennom en forekomst av IDataReader, men du kan også håndtere dem gjennom en annen klasse som heter datasett.

Den IDataReader er indisert å iterere på resultatene av en spørring. Spesielt utsetter det Les metode som gjentar seg gjennom radene en om gangen så sequenziale.Lo Ulempen er at når du skanner ikke er mulig å gå tilbake til en tidligere linje, og også de returnerte radene er skrivebeskyttet slik at du ikke kan endre innhold.

Alternativet er IDataReader til datasett, som tillater administrasjon av et sett med frakoblet data. ADO.NET er utviklet primært for å støtte applikasjoner svært skalerbar og en av de største problemene med skalerbarhet er grensen for hvor mange tilkoblinger til en database. Databasene er faktisk ofte en begrensning på antall samtidige tilkoblinger aktive til enhver tid, og hvis alle dem i bruk er tillatt operasjoner er bremset ned. Hvis antallet brukere av systemet er omtrent lik antall samtidige tilkoblinger tilgjengelig relevant problemer kan ikke forekomme, men hvis antallet brukere er større systemets ytelse kan påvirkes dramatisk.

For å løse disse problemene ADO.NET gir datasett klasse, designet for å gi en slags kopi av databasen (eller deler) som brukes av et program. Fordelene er mange, tenk at innen en forekomst av datasettet du kan skrive inn nye data, oppdatere eller slette eksisterende, og deretter bekrefte at alle disse operasjonene er utført i frakoblet modus ved å koble til databasen for en kort periode.

Datasettet klasse inneholder en rekke DataTable objekter, som er bebodd gjennom DataAdapter. Disse elementene er påberopt ved lasting av data fra databasen direkte inn i DataTable og deretter kan du arbeide med disse lokale data, i samspill med databasen bare når du bekrefte endringene gjort for dem.

Så bruker datasettet kan vi få tilgang til alle element i det så helt tilfeldig, i motsetning til hva vi så for komponenten DbDataReader.

ASP.Net med Visual Studio Hjelp
E-Learning
ASP (Advanced) ASP (Advanced)
Full kurs for å lage dynamiske nettsider. Starter fra 39 €.
ASP.NET (Course) ASP.NET (Course)
Full kurs for å bygge web-applikasjoner fra 49 €.
SQL og Database (Course) SQL og Database (Course)
Opprette og administrere relasjonsdatabaser. Starter fra 39 €.
Sponsede Lenker