Päringute koostamine visuaaltuudios c. Dünaamiline päringu koostamine. Näide kohaliku Microsoft SQL Serveri andmebaasi loomisest MS Visual Studios

Server Exploreri aknas, kus Microsoft SQL Serveri andmebaasitabelid esitatakse puu kujul (vt joonis 4.1.), Saate iga tabeli jaoks avada akna, klõpsates nuppu Näita tabeli andmeid. Selles aknas pakutakse võimalust tabeli andmeid redigeerida. See redigeerimisaken näeb välja umbes nii, nagu on näidatud joonisel fig. 4.2. Ligikaudu seetõttu, et kogu maht ei olnud joonisel suure veergude arvu tõttu.

      1. Andmebaaside kaardistamise rakendamine

Andmebaasi vastendamine (komponent DataSet) on vajalik selleks, et välistada tarbetud kõned andmebaasi ja serverisse. See on väga oluline funktsioon, sest kui paljud kasutajad töötavad andmebaasiga, võib serveri koormus olla üsna suur - taotluste arv on mitu korda suurem, mis aeglustab päringute täitmist.

Seetõttu kuvatakse kliendi arvutis oleva DataSet'i arvelt andmebaas, millega ta töötab. Töö lõppedes sünkroniseeritakse kliendi ja serveri andmebaasid (õigemini tehakse kliendi andmebaasis tehtud muudatused serveri andmebaasi)

Meie andmebaasi kaardistamine MS Visual Studio 2005-s näeb välja selline:

Kõik arvandmed on tüüpi Int32, stringiandmed tüüpi String. Stringiandmete mõõtmed vastavad füüsilise andmebaasi mudelis toodud mõõtmetele.

Ekraanipilt näitab, et igas tabelis on ka TableAdapters. Need on omamoodi sillad andmekomplekti ja andmeallika vahel. Sellel on sellised meetodid nagu Fill ja GetData ()

See meetod on mõeldud tabeli täitmiseks vajalike andmetega allikast (andmebaasifail)

    GetData () meetod

See on ette nähtud andmete võtmiseks kaardistustabelist.

    1. Tarkvara juurutamine

Tarkvara juurutamise peamine omadus on asjaolu, et kõik andmebaasitabelite redigeerimise eest vastutavad klassid on päritud ühest baasklassist, mis muudab juurutamise mugavamaks. Selle baasklassi meetodeid on kirjeldatud eespool. Alamklassi virtuaalsed meetodid tuleb järeltulijate klassis tühistada. Kõik need meetodid võimaldavad teil muuta lapse parameetreid, näiteks: vormi päise nime, soovitud andmebaasitabeli täitmist ja salvestamist (üks järeltulijaklass töötab andmete redigeerimise mõttes ainult ühe tabeliga; andmete kuvamisel kasutaja jaoks on võimalik kasutada mitut andmebaasitabelit andmete kuvamiseks kasutajale arusaadaval kujul).

      1. Programmi liides

Peaaken on MDI-rakendus, millel on järgmine menüü:

Kõiki andmebaasi redigeerimise tabeleid kutsub vastav menüüelement "Tabelid".

Samuti koostatakse aruanne õpetajate töökoormuse kohta, klõpsates vastaval menüüpunktil "Aruanded".

Tarkvara täiendava funktsioonina on menüüelement "Konsool", mis võimaldab teil sisestada SQL-i päringuid kasutaja sisestatud andmebaasi ja väljastada tulemuse tabelisse (DataTable-komponent). Selleks peate muidugi teadma tabelite ja väljade nimesid ning põhimõtteliselt loodi see tarkvara juurutamise mugavuse huvides, kuid ka teised "pühendunud" kasutajad saavad seda ära kasutada.

Näide kohaliku Microsoft SQL Serveri andmebaasi loomisest aastalMS Visual Studio

See teema näitab MS Visual Studio abil SQL Serveriga sarnase andmebaasi loomise probleemi lahendust. Käsitletakse järgmisi küsimusi:

  • töötama MS Visual Studio Server Exploreri aknaga;
  • kohaliku andmebaasi, näiteks SQL Serveri andmebaasi loomine;
  • tabelite loomine andmebaasis;
  • tabelistruktuuride redigeerimine;
  • andmebaasitabelite sidumine üksteisega;
  • andmete sisestamine tabelitesse MS Visual Studio abil.

Ülesanne

Looge MS Visual Studio tööriistade abil MS SQL Serveri andmebaas nimega Haridus. Andmebaas sisaldab kahte tabelit Student ja Session. Tabelid on omavahel seotud mõne valdkonna järgi.

Esimese tabeli "Tudeng" struktuur.

Teise tabeli “Session” ülesehitus.

Performance

1. Laadige alla MS Visual Studio.

2. AktiveeriakenServer Explorer.

Andmebaasidega töötamiseks pakub Microsoft kerget andmebaasiserverit Microsoft SQL Server. Microsoft SQL Serveril on erinevaid versioone, näiteks: Microsoft SQL Server 2005, Microsoft SQL Server 2008, Microsoft SQL Server 2014 ja teised.

Need versioonid saate alla laadida Microsofti veebisaidilt aadressilt www.msdn.com.

See server sobib suurepäraselt andmebaasidega töötamiseks. See on tasuta ja sellel on graafiline liides andmebaaside loomiseks ja haldamiseks SQL Serveri haldustööriista abil.

Kõigepealt peate enne andmebaasi loomist aktiveerima Server Exploreri utiliidi. Selleks peate MS Visual Studio'is helistama (joonis 1)

Vaade -> Server Explorer

Riis. 1. Helistamine Server Explorerisse

Kui see on kutsutud, on Server Exploreri aknal ligikaudne vaade, nagu on näidatud joonisel 2.

Riis. 2. Server Exploreri aken

3. Andmebaasi "Haridus" loomine.

Uue andmebaasi loomiseks Microsofti SQL Serveri andmepakkuja baasil klõpsake sõlme Andmeühendused ja valige seejärel Uue SQL Serveri andmebaasi loomine ...”(Joonis 3).

Riis. 3. SQL Serveri andmebaasi loomiseks käsule helistamine

Selle tulemusena ilmus aken „ Looge uus SQL Serveri andmebaas"(Joonis 4).

Aken (väljal "Serveri nimi") näitab teie arvutisse installitud kohaliku serveri nime. Meie puhul on see nimi “SQLEXPRESS”.

Väli "Uus andmebaasi nimi:" sisaldab loodava andmebaasi nime. Meie puhul on see nimi Haridus.

Jätke suvand Kasuta Windowsi autentimist muutmata ja klõpsake nuppu OK.

Riis. 4. Uue SQL Server 2008 Expressi andmebaasi loomine, kasutades MS Visual Studio 2010

Pärast sooritatud toiminguid võtab Server Exploreri aken kuju, nagu on näidatud joonisel 5. Nagu näete jooniselt 5, on hariduse andmebaas nimega

sasha-pc \ sqlexpress.Education.dbo

Riis. 5. Server Exploreri aken pärast hariduse andmebaasi lisamist

4. Hariduse andmebaasi objektid.

Kui laiendate hariduse andmebaasi (märk "+"), näete järgmiste peamiste objektide loendit:

  • Andmebaasiskeemid - andmebaasiskeemid. Diagrammid näitavad seoseid andmebaasitabelite vahel, seoseid erinevate tabelite väljade vahel jne.
  • Tabelid - tabelid, mis sisaldavad andmebaasi andmeid;
  • Vaated - vaated. Vaate ja tabeli erinevus seisneb selles, et andmebaasitabelid sisaldavad andmeid, andmevaated ei sisalda ja sisu tõmmatakse teistest tabelitest või vaadetest;
  • Salvestatud protseduurid on salvestatud protseduurid. Need on seotud SQL-i laused, mis pakuvad andmebaasiga töötamisel täiendavat paindlikkust.

5. Õpilase tabeli loomine.

Praegu on hariduse andmebaas täiesti tühi ega sisalda objekte (tabeleid, salvestatud protseduure, vaateid jne).

Tabeli loomiseks peate helistama kontekstimenüüsse (paremklõpsama) ja valima käsu "Lisa uus tabel" (joonis 6).

Riis. 6. Uue tabeli lisamise käsk

Andmebaasitabeli lisamiseks menüü Andmed abil on veel üks võimalus:

Andmed -> Lisa uus -> Tabel

Riis. 7. Alternatiivne võimalus uue tabeli lisamiseks

Selle tulemusena avaneb tabeli lisamise aken, mis sisaldab kolme veergu (joonis 8). Esimeses veerus „Veeru nimi“ peate sisestama andmebaasi tabeli vastava välja nime. Teises veerus „Andmetüüp“ peate sisestama selle välja andmetüübi. Kolmas veerg „Luba tühjad andmed” näitab võimalust väljal andmete puudumise võimalikkuse kohta.

Riis. 8. Uue tabeli loomise aken

Tabeliredaktori abil peate looma õpilaste tabeli, nagu on näidatud joonisel 9. Tabeli nimi tuleb määrata, kui see on suletud.

Tabeliredaktoris saate väli atribuudid määrata veeru atribuutide aknas. Stringi pikkuse (nvchar) märkides määramiseks on akna Veeru omadused omadus Pikkus. Selle atribuudi vaikeväärtus on 10.

Riis. 9. Õpilaste laud

Järgmine samm on võtmevälja määramine. Selleks helistatakse välja Num_book kontekstimenüüst käsk „Set Primary Key”. Võtmevälja abil luuakse tabelite vahelised suhted. Meie puhul on võtmeväli hinneteraamatu number.

Riis. 10. Võtmevälja määramine

Pärast esmase võtme seadistamist näeb tabeli aken välja nagu joonisel 11 näidatud.

Riis. 11. Üliõpilaste laud pärast lõplikku moodustamist

Nüüd saate laua sulgeda. Tabeli salvestamise aknas peate määrama selle nime - Student (joonis 12).

Riis. 12. Õpilase tabeli nime sisestamine

6. Sessiooni tabeli loomine.

Õpilase tabeli loomise eeskujul luuakse tabel Sessioon.

Joonisel 13 on esitatud tabeli Session vaade pärast lõplikku moodustamist. Peamine võti määratakse väljal Num_book. Tabeli nime annab Session.

Riis. 13. Istungilaud

Pärast lõpetatud toiminguid kuvatakse Server Exploreri aknas kaks tabelit Student ja Session.

Seega saab andmebaasi lisada suvalise arvu tabeleid.

7. Tabelite struktuuri muutmine.

Mõnikord peate muutma andmebaasitabeli struktuuri.

MS Visual Studio andmebaasitabelites muudatuste tegemiseks peate kõigepealt tühjendama valiku „Takista muudatuste salvestamist“ mis nõuavad tabeli uuesti loomist”Nagu on näidatud joonisel 14. Vastasel juhul blokeerib MS Visual Studio varem loodud tabeli muudatused. Joonisel 14 näidatud suvandiakent avatakse menüüs Tööriistad järgmises järjestuses:

Tööriistad -> Valikud -> Andmebaasi tööriistad -> Tabelite ja andmebaaside kujundajad

Riis. 14. Variant “ Takistage muudatuste salvestamine, mis nõuavad tabeli uuesti loomist

Pärast seadistamist saate tabeli struktuuri muuta. Selleks kasutage kontekstimenüü käsku “Open Table Definition” (joonis 15), mida kutsutakse valitud tabeli jaoks (paremklõps).

Riis. 15. Käsu "Open Table Definition" kutsumine

See käsk asub ka menüüs Andmed:

Andmed -> avatud tabeli määratlus

Esiteks tuleb valida tabel.

8. Tabelite vaheliste suhete loomine.

Vastavalt probleemi tingimusele on tabelid omavahel ühendatud väljal Num_book.

Tabelite vahelise suhte loomiseks peate esmalt (joonis 16):

  • valige objekt Database Diagram;
  • valige kontekstimenüüst (või menüüst Andmed) käsk Lisa uus skeem.

Riis. 16. Uue skeemi lisamiseks käsu kutsumine

Selle tulemusena avaneb uue diagrammi lisamise aken Lisa tabel (joonis 17). Selles aknas peate järjestikku valima kaks tabelit Session ja Student ja klõpsama nuppu Lisa.

Riis. 17. Diagrammile tabelite lisamise aken

Riis. 18. Tabelid õpilane ja istungjärk pärast nende lisamist skeemile

Tabelite vahelise suhte loomiseks peate klõpsama õpilase tabeli väljal Num_book ja seejärel (ilma hiirenuppu vabastamata) lohistama selle tabeli Session väljale Num_book.

Selle tulemusena avatakse järjestikku kaks akent: tabelid ja veerud (joonis 19) ja välisvõtme suhe (joonis 20), kus peate kõik jätma nii, nagu see on, ja kinnitama oma valiku OK.

Aknas Tabelid ja veerud määrate seose nime (FK_Session_Student) ning vanema (Student) ja alamtabelite nimed.

Riis. 19. Tabelite ja veergude aken

Riis. 20. Seosomaduste määramise aken

Pärast sooritatud toiminguid luuakse tabelite suhe (joonis 21).

Riis. 21. Tabelite suhe õpilane ja seanss

Diagrammi salvestamine toimub samamoodi nagu tabeli salvestamine. Diagrammi nimi tuleb valida teie äranägemise järgi (näiteks diagramm1).

Pärast skeemi nime määramist avaneb aken Salvesta, milles peate oma valiku kinnitama (joonis 22).

Riis. 22. Tabelite muudatuste salvestamise kinnitus

9. Andmete sisestamine tabelitesse.

Microsoft Visual Studio võimaldab teil andmeid otse andmebaasi tabelitesse sisestada.

Meie puhul valitakse ühenduse loomisel (joonis 19) peamiseks õpilastabel (esmane võtmetabel). Seetõttu peate kõigepealt sisestama andmed selle konkreetse tabeli lahtritesse. Kui proovite kõigepealt tabelisse Session andmed sisestada, blokeerib süsteem sellise sisendi vastava teate väljundiga.

Andmete tabelisse Student sisestamise režiimi kutsumiseks peate helistama kontekstimenüüst (paremklõpsake) või menüü Andmed käsku Näita tabeli andmeid (joonis 23).

Riis. 23. Näita tabeli andmete käsku

Avaneb aken, kuhu peate sisestama sisendandmed (joonis 24).

Riis. 24. Andmete sisestamine õpilaste tabelisse

Pärast andmete sisestamist tabelisse Student peate sisestama andmed tabelisse Session.

Andmete sisestamisel tabeli Session väljale Num_book tuleb sisestada täpselt samad väärtused, mis on sisestatud tabeli Student õpilaste väljale Num_book (kuna need väljad on seotud).

Näiteks kui õpilase tabeli väli Num_book sisaldab väärtusi “101”, “102”, “103” (vt joonis 24), siis tuleks need väärtused sisestada tabeli Session väljale Num_book. Kui proovite sisestada erinevat väärtust, kuvab süsteem ligikaudu järgmise akna (joonis 25).

Riis. 25. Veateade seotud tabelite üliõpilane ja seanss andmete sisestamise kohta

Sessioonitabel sisestatud andmetega on näidatud joonisel 26.

Selles artiklis saate teada, mis on LINQ ja kuidas seda loendite päringuteks kasutada.

Mis on LINQ? Keelte integreeritud päring (LINQ) on integreeritud päringukeel või õigemini Microsofti vastuoluline projekt SQL-i sarnase päringukeele süntaksite lisamiseks. Täpsemalt, selle tööriista abil on tabelite ja andmete loendite, mitte tingimata andmebaasi, päringu tegemine suhteliselt lihtne.

Microsofti näidetes on puudu üks väike, kuid oluline detail. Andmekogumiga töötamiseks peame kasutama DataContext'i struktuuri, mille määratluse saab hankida SPMetal.exe abil loendis või teegis, mis asub Sharepointi serveris. Teisisõnu peame kõigepealt määratlema selle andmetüübi ja seejärel looma päringu. Üldiselt soovitan MVS-is töötamiseks kasutada spetsiaalset utiliiti: Imtech Get SPMetal Definition Extension.

Tööks vajame mingit nimekirja. Kasutame lihtsat loendit - "kohandatud loendit"; pealkiri - "Lihtne pöördumine"; vaikeväljad: Number, Nimi.

Ja nii, loome lihtsa (vt vastavat lehte), millega jälgime oma manipulatsioonide tulemust. Projekti loomisel valime eraldatud usalduse mudeli, kui on vaja töötada loenditega või muude sõlmede andmetega, siis on vaja luua talu jaoks projekt.

Järgmiseks loome klassi SimpleCall.cs faili, kasutades SPMetal.exe või stuudio pistikprogrammi. Lisame lingi teeki Microsoft.Sharepoint.Linq. Lisateavet leiate MSDN-i veebisaidilt.

Loome funktsiooni Render ja my_mess. Viimases funktsioonis moodustame andmed kuvamiseks.

// funktsiooni ülekoormus
kaitstud tühistamine tühine Render (HtmlTextWriteri kirjutaja)
{
alus .Render (kirjutaja);
my_mess (kirjanik);
}

// Meie funktsioon loendiga töötamiseks
public void my_mess (HtmlTextWriteri kirjutaja)
{
// Loo kontekst
DataContext data = uus DataContext ("http: // localhost");
// Linkige see juurte saidi vastava loendiga
EntityList<Элемент>Simple_Message = data.GetList<Элемент>("Lihtne kaebus");
// Täitke taotlus - valige loendist "Lihtne kõne" kõik read
var query = from mess in Simple_Message
vali segadus;
// kuvada kõik päringu tulemuse andmed
foreach (var elem in query)
{
kirjanik.WriteLine ( "Loendi üksus:"+ elem.Nimi.ToString ());
kirjanik.KirjutageBreak ();
}

}

Koostame projekti ja lisame selle lehele. Selle tulemusena kuvatakse kõik loendi read.

Jätkub hiljem (artikkel pole valmis) ...