..
En la lliçó anterior vam veure com enllaçar un recull de estàtica (també conegut com de la memòria) a diversos controls de servidor. Encara que aquest tipus d'operació pot ser útil en certs contextos, però, sovint sorgeix la necessitat d'enllaçar els controls a les diferents col.leccions d'articles d'altres fonts, sovint a partir d'una base de dades.
A més d'incloure les biblioteques de classes per al desenvolupament d'aplicacions d'escriptori (Windows Forms) i la gestió de les peticions HTTP (ASP.NET),. NET Framework també inclou una biblioteca que suporta la connexió d'una àmplia varietat de bases de dades i es anomenada ADO.NET (objectes de dades activa. NET). Aquesta tecnologia es basa en tres funcions principals: la connexió a una base de dades, consultar una base de dades i gestió de resultats.
Quan es vol interactuar amb una base de dades que s'han de connectar a ell. La connexió requereix la identificació de la ubicació de la base de dades, però també pot demanar per a la gestió de la seguretat i altres restes complex. Tots aquests elements són manejats com a part del procés de connexió a una base de dades. La informació de connexió sol ser passat com una cadena, el contingut s'utilitza per ajustar els diferents paràmetres.
Mentre que en el passat havia d'escriure manualment el codi per accedir a una base de dades a través de ADO.NET en especificar el tipus de base de dades que voleu connectar i configurar automàticament les propietats són adequades per a aquest tipus de connexió.
Hi ha diversos tipus de bases de dades compatibles:
<configuration> <configSections> <= Nom de la secció "System.Data.Odbc" type = " System.Data.Common.DbProviderConfigurationHandler, ..."/> Nom <= Secció "System.Data.OleDb" type = " System.Data.Common.DbProviderConfigurationHandler, ..."/> Nom <= Secció "System.Data.OracleClient" type = " System.Data.Common.DbProviderConfigurationHandler, ..."/> Nom <Secció = "System.Data.SqlClient" type = " System.Data.Common.DbProviderConfigurationHandler, ... "/> <configSections /> <system.data> <DbProviderFactories> <Afegir name = "Microsoft SQL Server Data Provider Compact" invariant = " System.Data.SqlServerCe.3.5 " type = "System.Data.SqlServerCe.SqlCeProviderFactory ..." /> </ DbProviderFactories> </ System.Data> < / Configuració>>
Per crear la connexió de base de dades per tant, ha d'utilitzar el component correcte. Amb la disponibilitat d'una connexió que pot utilitzar per accedir a la base de dades. Per exemple, si el nostre equip local d'allotjament una base de dades de SQL Server anomenada DB_TEST ha d'entrar en la nostra aplicació d'un eventual la següent cadena de connexió
<configuration> <connectionStrings> <Afegir nom = "TEST" connectionString = "server = (local); Integrated Security = SSPI, base de dades DB_TEST = "/> </ ConnectionStrings> </ Configuració>En aquest punt vostè pot obrir la connexió i tenir la base de dades per a l'execució de les operacions que volem.
La majoria de bases de dades suporten el llenguatge SQL (Structured Query Language) per a realitzar consultes, els canvis, les noves insercions i eliminacions de dades. Aquestes ordres habitualment tenen una forma semblant a la següent
SELECT * FROM Clients WHERE cognom = 'Smith'on el Client és una taula en una base de dades. Aquesta comanda pren una llista de clients de cognom Smith. Per obtenir aquestes dades dins de la nostra aplicació d'un escrivim el següent codi
TestDBApp classe
{
static void Main ()
{
DbProviderFactory DbProviderFactory DbProviderFactories.GetFactory = ("System.Data.SqlClient");
utilitzant (DbConnection CONN dbProviderFactory.CreateConnection = ())
{
String s = ConfigurationManager.ConnectionStrings ["prova"] ConnectionString.;
conn.ConnectionString = s;
conn.Open ();
DbCommand cmd = conn.CreateCommand ();
cmd.CommandText = "SELECT * FROM Clients WHERE cognom = 'Smith'";
DbDataReader lector = cmd.ExecuteReader ();
/ / Utilitza el lector per accedir a les dades
}
}
}
Les comandes (cmd) amb el mètode ExecuteReader fa que l'enviament de consultes nostra base de dades.
Els resultats en aquest cas s'obtenen a través d'una instància de la classe IDataReader, però també es poden gestionar a través d'una altra classe anomenada DataSet.
El IDataReader està indicat per realitzar les iteracions dels resultats d'una consulta. En particular, s'exposa el mètode de lectura que recorre la fila alhora per sequenziale.Lo desavantatge és que al escanejar no és possible tornar a una línia anterior i també es retorna files són de només lectura per la qual cosa no pot canviar el contingut.
L'alternativa és el IDataReader al conjunt de dades, que permet l'administració d'un conjunt de dades desconnectats. ADO.NET està dissenyat principalment per suportar aplicacions molt escalable i un dels principals problemes d'escalabilitat és el límit en el nombre de connexions a una base de dades. La base de dades, de fet, sovint tenen un límit en el nombre de connexions actives simultàniament en un moment donat i si tots els que s'utilitzen estan permeses les operacions s'alenteixen. Si el nombre d'usuaris del sistema és aproximadament igual a la quantitat de connexions disponibles al mateix temps podria causar problemes no és rellevant, però si el nombre d'usuaris ha augmentat el rendiment del sistema pot patir de forma espectacular.
Per abordar aquests problemes ADO.NET proporciona la classe DataSet, dissenyat per proporcionar una mena de còpia de la base de dades (o part del mateix) que utilitza una aplicació. Els avantatges són moltes, només cal pensar que en una instància del conjunt de dades que pot introduir noves dades, actualitzar o esborrar els ja existents, i confirmar totes aquestes operacions que s'executen fora de línia mitjançant la connexió a la base de dades per un període curt de temps.
La classe DataSet inclou un conjunt d'objectes DataTable, que s'omplen a través del DataAdapter. Aquests elements són invocats en carregar les dades de la base de dades directament en l'objecte DataTable i com es pot treballar en aquestes dades locals, interactuant amb la base de dades només quan confirma els canvis realitzats en ells.
Així, utilitzant el conjunt de dades que poden tenir accés a tots els elements en ell tan completament a l'atzar, a diferència del que hem vist per al component DbDataReader.
| |
ASP (Advanced)
Cicle complet per a la creació de llocs web dinàmics. A partir de 39 €. |
| |
ASP.NET (Curs)
Curs complet per construir aplicacions web a partir de 49 €. |
| |
SQL i bases de dades (Curs)
Crear i gestionar bases de dades relacionals. A partir de 39 €. |