..
Edellisellä oppitunnilla näimme kuinka sitoa kokoelma staattinen (tunnetaan myös in-muisti) eri palvelimelle sivupainikkeet. Vaikka tällaisen toiminnan voi olla hyötyä tietyissä yhteyksissä, mutta usein tulee tarvetta sitoa ohjausobjekteja eri kokoelmiin kohteita muista lähteistä, usein tietokannasta.
Lisäksi myös luokkakirjastot kehittää työpöytäsovelluksia (Windows Forms) ja hallinta http-pyyntöjä (ASP.NET). NET Framework sisältää myös kirjasto, joka tukee liitäntää erilaisia tietokantoja ja on kutsutaan ADO.NET (Active Data Objects. NET). Tämä teknologia perustuu kolme päätehtävää: Liittäminen tietokanta, hakea tietoja tietokannasta, ja tulokset hallinta.
Kun haluat vuorovaikutuksessa tietokantaan sinun on liityttävä siihen. Yhteys edellyttää tunnistamista sijainnin tietokantaan, mutta voi myös kysyä turvallisuuden hallintaan ja muita monimutkaisia lepää. Kaikki nämä seikat hoidetaan osana prosessia yhdistää tietokantaan. Yhteystiedot ovat yleensä välitetään merkkijono, jonka sisältöä käytetään asettaa eri parametrien.
Aikaisemmin jouduit käsin kirjoittaa koodin avulla tietokantaan ADO.NET määrittämällä tietokannan tyyppi, jonka haluat liittää ja automaattisesti asettaa ominaisuudet sopivat, että liitäntätapaa.
On olemassa useita erilaisia tietokantoja tuetaan:
<configuration> <configSections> <§ name = "System.Data.Odbc" type = " System.Data.Common.DbProviderConfigurationHandler, ..."/> <§ name = "System.Data.OleDb" type = " System.Data.Common.DbProviderConfigurationHandler, ..."/> <§ name = "System.Data.OracleClient" type = " System.Data.Common.DbProviderConfigurationHandler, ..."/> <§ name = "System.Data.SqlClient" type = " System.Data.Common.DbProviderConfigurationHandler, ... "/> <configSections /> <system.data> <DbProviderFactories> <Lisää nimi = "Microsoft SQL Server Compact Data Provider" invariantti = " System.Data.SqlServerCe.3.5 " type = "System.Data.SqlServerCe.SqlCeProviderFactory ..." /> </ DbProviderFactories> </ System.Data> < / Configuration>>
Voit luoda tietokantayhteys on siis käytettävä oikea komponentti. Saatavuudessa yhteyden voit käyttää käyttää tietokantaa. Jos esimerkiksi paikallinen isännöivä tietokone tietokanta SQL Server kutsutaan DB_TEST on tultava lopulta meidän hakemus seuraavat yhteysmerkkijono
<configuration> <connectionStrings> <Lisää nimi = "test" connectionString = "palvelin = (paikallinen); Integroitu Security = SSPI; DB_TEST database = "/> </ ConnectionStrings> </ Configuration>Tässä vaiheessa voit avata yhteyden ja on tietokanta toimien toteuttamiseen että haluamme.
Useimmat tietokannat tukea SQL-kielen (Structured Query Language) tehdä kyselyjä, muutokset, uudet lisäykset ja poistot tietoa. Nämä komennot on yleensä vastaavassa muodossa seuraavaa
SELECT * FROM Asiakkaat WHERE Sukunimi = 'Smith'jossa asiakas on taulukko tietokantaan. Tämä komento vie luettelo asiakkaista, joiden sukunimi on Smith. Näiden tietojen saamiseksi sisällä meidän soveltamisesta kirjoitamme seuraava koodi
TestDBApp luokka
{
static void Main ()
{
DbProviderFactory DbProviderFactory DbProviderFactories.GetFactory = ("System.Data.SqlClient");
käyttäen (DbConnection conn = dbProviderFactory.CreateConnection ())
{
String s = ConfigurationManager.ConnectionStrings ["Test"]. ConnectionString;
conn.ConnectionString = s;
conn.Open ();
DbCommand cmd = conn.CreateCommand ();
cmd.CommandText = "SELECT * FROM Asiakkaat WHERE Sukunimi = 'Smith'";
DbDataReader lukija = cmd.ExecuteReader ();
/ / Käytä lukija käyttää tietoja
}
}
}
Komento (cmd) käyttäen ExecuteReader käyttöön aiheuttaa lähettämistä meidän tietokantakyselyitä.
Tulokset tässä tapauksessa on saatu esiintymä IDataReader luokan, mutta voit myös hallita niitä läpi toiseen ryhmään kutsutaan DataSet.
IDataReader on tarkoitettu suorittaa iteraatioiden tuloksista kyselyn. Erityisesti se altistaa Read-menetelmää että iterointikertojen läpi rivit yksi kerrallaan niin sequenziale.Lo haittapuoli on, että kun skannaus ei ole mahdollista palata edelliselle riville ja myös palauttaa rivit luetaan vain niin et voi muuttaa sisällöstä.
Vaihtoehtona on IDataReader on DataSet, joka mahdollistaa hallinnan joukko katkeaa tiedot. ADO.NET on suunniteltu ensisijaisesti tukemaan sovelluksia erittäin skaalautuva ja yksi suurimmista ongelmista skaalautuvuus on rajoitettu määrä yhteyksiä tietokantaan. Tietokanta itse asiassa usein on rajoitus yhteyksien määrä aktiivisia samanaikaisesti tiettynä ajankohtana, ja jos kaikki käytössä ovat sallittuja toiminta hidastui. Jos käyttäjien määrä järjestelmä on suunnilleen sama määrä lentoja samalla voisi aiheuttaa ongelmia ole merkitystä, mutta jos käyttäjien määrä on lisääntynyt järjestelmän suorituskyky saattaa kärsiä huomattavasti.
Näiden ongelmien ADO.NET tarjoaa DataSet luokka, jonka tarkoituksena on tarjota eräänlainen kopio tietokannasta (tai osan) käyttämä sovellus. Edut ovat monet, ajatelkaa että sisällä esiintymä Aineiston voit syöttää uusia tietoja, päivittää tai poistaa olemassa olevia, ja vahvista sitten kaikki nämä toimet, jotka toteutetaan irti tilassa liittämällä tietokantaan lyhyessä ajassa.
DataSet luokkaan kuuluvat valikoiman DataTable esineitä, jotka ovat asuttuja kautta DataAdapter. Nämä tekijät ovat vedonneet ladattaessa tietokannasta suoraan DataTable ja sitten voit työskennellä näiden paikallisia tietoja, vuorovaikutuksessa tietokantaan vasta kun olet vahvistanut tehtäviin muutoksiin.
Joten käyttäen DataSet pääsemme jokainen elementti niin täysin sattumanvaraisesti, toisin kuin mitä näimme komponentin DbDataReader.
| |
ASP (Advanced)
Täysi tietenkin luoda dynaamisia Web-sivustoja. Alkaen 39 €. |
| |
ASP.NET (kurssi)
Koko kurssin rakentamiseen web-sovellusten alkaen 49 €. |
| |
SQL ja Database (kurssi)
Luoda ja hallita relaatiotietokantojen. Alkaen 39 €. |