..
I forrige lektion så vi hvordan man kan binde en samling af statiske (også kaldet in-memory) til forskellige server side kontrol. Selv om denne type operation kan være nyttige i visse sammenhænge, men ofte kommer behovet for at binde kontrolelementer til de forskellige samlinger af genstande fra andre kilder, ofte fra en database.
Ud over herunder klasse biblioteker til udvikling af desktop applikationer (Windows Forms), og forvaltningen af HTTP-anmodninger (ASP.NET), også. NET Framework indeholder et bibliotek, som understøtter tilslutning til en bred vifte af databaser og er kaldes ADO.NET (Active Data Objects. NET). Denne teknologi er baseret på tre hovedfunktioner: Tilslutning til en database, søge i en database, og resultaterne ledelse.
Når du ønsker at interagere med en database skal du oprette forbindelse til den. Forbindelsen kræver identifikation af placeringen af databasen, men kan også bede om sikkerheds-ledelse og andre komplekse hviler. Alle disse elementer er styres som en del af processen med at forbinde til en database. Forbindelsen oplysninger er normalt passeret som en streng, hvis indhold bruges til at indstille forskellige parametre.
Mens der i de sidste du var nødt til manuelt at skrive kode for at få adgang til en database gennem ADO.NET ved at specificere den type database, du ønsker at tilslutte og automatisk at indstille egenskaber er egnet til denne type tilslutning.
Der findes flere typer af understøttede databaser:
<configuration> <configSections> <Sektion name = "System.Data.Odbc" type = " System.Data.Common.DbProviderConfigurationHandler, ..."/> <Sektion name = "System.Data.OleDb" type = " System.Data.Common.DbProviderConfigurationHandler, ..."/> <Sektion name = "System.Data.OracleClient" type = " System.Data.Common.DbProviderConfigurationHandler, ..."/> <Sektion name = "System.Data.SqlClient" type = " System.Data.Common.DbProviderConfigurationHandler, ... "/> <configSections /> <system.data> <DbProviderFactories> <Tilføj navn = "Microsoft SQL Server Compact Data Provider" invariant = " System.Data.SqlServerCe.3.5 " type = "System.Data.SqlServerCe.SqlCeProviderFactory ..." /> </ DbProviderFactories> </ System.Data> < / Konfiguration>>
Hvis du vil oprette forbindelsen til databasen skal derfor bruge den rigtige komponent. Med muligheden for en forbindelse du kan derefter bruge til at få adgang til databasen. For eksempel, DB_TEST hvis vores lokale computer vært for en database med SQL Server kaldes, skal indgå i en eventuel vores ansøgning følgende connection string
<configuration> <connectionStrings> <Tilføj navn = "TEST" connectionString = "server = (lokale); Integrated Security = SSPI; DB_TEST database = "/> </ ConnectionStrings> </ Configuration>På dette tidspunkt kan du åbne forbindelsen og har databasen for at gennemføre operationer, som vi ønsker.
De fleste databaser understøtter SQL-sproget (Structured Query Language) til at foretage forespørgsler, ændringer, nye indsætninger og sletninger af data. Disse kommandoer har normalt en form, der ligner følgende
SELECT * FROM Kunder WHERE efternavn = 'Smith'hvor Kunden er en tabel i en database. Denne kommando tager en liste over kunder, hvis efternavn er Smith. For at opnå disse data inden for vores anvendelse af en vi skrive følgende kode
TestDBApp klasse
{
static void Main ()
{
DbProviderFactory DbProviderFactory DbProviderFactories.GetFactory = ("System.Data.SqlClient");
hjælp (DbConnection conn = dbProviderFactory.CreateConnection ())
{
string s = ConfigurationManager.ConnectionStrings ["Test"] ConnectionString.
conn.ConnectionString = s;
conn.Open ();
DbCommand cmd = conn.CreateCommand ();
cmd.CommandText = "SELECT * FROM Kunder WHERE efternavn = 'Smith'";
DbDataReader læseren = cmd.ExecuteReader ();
/ / Brug læseren til at få adgang til data
}
}
}
Kommandoen (cmd) ved hjælp af ExecuteReader metode forårsager sende vores database forespørgsler.
Resultaterne i denne sag er opnået gennem en instans af IDataReader klassen, men du kan også styre dem gennem en anden klasse kaldet datasæt.
Den IDataReader er indiceret til at udføre gentagelser på resultaterne af en forespørgsel. I særdeleshed, udsætter det Læs metode, der gentages gennem rækkerne en af gangen, så sequenziale.Lo Ulempen er, at når scanningen ikke er muligt at vende tilbage til et tidligere linje og også returneret rækker er read-only, så du kan ikke ændre indhold.
Alternativet er den IDataReader til datasæt, som tillader styring af et sæt afbrudt data. ADO.NET er primært designet til at understøtte applikationer meget skalerbar og et af de største problemer for skalerbarhed er den grænse for antallet af forbindelser til en database. Databasen i virkeligheden ofte er en begrænsning på antallet af tilslutninger samtidigt aktive på et givet tidspunkt, og hvis alle dem, der bruges er tilladt operationer er langsommere. Hvis antallet af brugere af systemet er stort set lig med antallet af forbindelser til rådighed på samme tid kan forårsage problemer ikke relevant, men hvis antallet af brugere er steget systemets ydeevne kan lide dramatisk.
For at løse disse problemer ADO.NET giver DataSet klassen, designet til at give en slags kopi af databasen (eller dele deraf) benyttes af et program. Fordelene er mange, mener bare, at inden for en instans af datasæt, du kan indtaste nye data, opdatere eller slette eksisterende, og derefter bekræfte alle disse operationer, der udføres i frakoblet tilstand ved at forbinde til databasen i en kort periode.
Datasættet klasse omfatter en bred vifte af DataTable objekter, som er befolket gennem DataAdapter. Disse elementer er påberåbes ved indlæsning af data fra databasen direkte ind i DataTable og derefter kan du arbejde med disse lokale data, interagerer med den database, når du bekræfter ændringerne i dem.
Så ved hjælp af datasættet, vi kan få adgang til hvert element i det, så helt tilfældigt, i modsætning til hvad vi så for komponenten DbDataReader.
| |
ASP (Advanced)
Fuld kursus for at skabe dynamiske web-sites. Fra 39 €. |
| |
ASP.NET (Kursus)
Fuld kursus for bygge web-applikationer fra 49 €. |
| |
SQL-og Database (Kursus)
Oprette og administrere relationelle databaser. Fra 39 €. |