arbejdet med lokale databaser på vinduer telefon 8

i samarbejde med lokale databaser på vinduer telefon 8,,,,, 28,,,,,,,,, 6,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss.,, i den foregående artikel, du har lært at opbevare data i din app 's isoleret oplagring.i denne artikel, skal vi fokusere på at arbejde sammen med lokale databaser, der bor i din app 's isoleret oplagring.du vil lære om database operationer med linq, database schemas, samt hvordan til at hente data fra en lokal database.,,, 1.indledning, du kan opbevare relationel data i en lokal database,  , der bor i din app 's isoleret oplagring.hele databasen operationer på vinduer telefon er udført ved hjælp af linq for sql.det   anvendes til at definere database skema, udvælge oplysninger, og redde ændringer i den underliggende database, dokumentation, som er bosat i den lokale mappe.  ,, linq for sql objekt model bruger, system.data.linq.datacontext, namespace at gøre fuldmagt til den lokale database.den linq for sql runtime   retsakter   som en bro mellem data forbindelse,   genstand og de reelle data, til at gøre manipulationer,.,, når vi arbejder med lokale databaser, vinduer, telefon, det er vigtigt at holde sig følgende i betragtning:,,, lokal database, løber i vinduerne telefon app 's proces.det ikke kører kontinuerligt som baggrund tjeneste. det kan fås kun med de tilsvarende vinduer   telefon app. det kan fås kun med linq for sql, handle sql understøttes ikke. at synkronisere adgang til lokale mappe på forskellige tråde,  , mutex, klasse anvendes. er det ikke anbefales at kryptere de   reference database, dokumentation, hvis du kommer til at få adgang til det udelukkende fra anlægget mappe.   det forhindrer systemet fra rutinemæssig database, vedligeholdelse, f.eks. en indeksering efter den første forbindelse.,, denne artikel viser, hvordan du kan skabe en lokal database og indsæt, ajourføre eller slette oplysninger fra det.vi vil bygge en prøve med en ansøgning, brugeroplysninger, tabel og udføre forskellige aktiviteter på det.vi vil adskille kode filer til forskellige aktiviteter som f.eks. indsæt, ajourføre og slette for nemheds skyld.  , 2.bygning af data forbindelse, tabellerne for databasen kan blive defineret nogen steder i app, så længe det er tilgængeligt på globalt plan.vi skaber en separat fil,  , db. cs, for alle tabeller.i denne sag fastsætte en genstand model, der bestemmer, database, skema, og skabe de data, sammenhæng,.,,, trin 1: tilføjelse af henvisninger,,,,, at tilføje følgende direktiver på toppen af  , db.cs, fil at reference linq for sql forsamling:, ved hjælp af system.data.linq; anvendelse af systemet. data. linq. kortlægning,,, trin 2:   skaber en tabel, tilføje en enhed, klasse, der hedder, user_details, der udgør databasen tabel af app i lokale database.   attributten [tabel],   angiver linq for sql runtime at kortlægge den klasse, en lokal database, tabel. [tabel] offentlige klasse user_details {(kolonne (isdbgenerated = sandt, isprimarykey = sand)] offentlige int id (få; der;} [kolonne] offentlige snor user_name {kom, sæt;} [kolonne] offentlige snor user_email {få; der;}}, som du kan se, user_details, klasse har tre offentlige egenskaber, der svarer til tre database kolonner:,,, - - er en identifikator kolonne, som automatisk er befolket af databasen.det er også den vigtigste nøgle, som en database indeks er oprettet automatisk.disse miljøer, og flere er angivet med linq for sql kolonne kortlægning attribut skrevet over ejendom syntaks.,, user_name, er en kolonne til opbevaring af navnet på brugeren.,, user_email, er en kolonne til at oplagre den e - mail - adresse af brugeren, trin 1: definition af data forbindelse, klasse, userdatacontext, arver fra datacontext, og den er benævnt data sammenhæng.denne kode kalder basen konstruktøren og erklærer den database, tabel ved navn, user_details,.de lokale database er lagret i app 's isoleret oplagring og i vores eksempel er reddet, databaser. sdf.  , offentlige klasse userdatacontext: datacontext {offentlige statiske snor dbconnectionstring = @ "isostore: /databaser. sdf" offentlige userdatacontext (string - connectionstring): base (connectionstring) {} offentlige tab. < user_details > brugerne (kom {tilbage. gettable < user_details > c);}}}, bemærke, at databasen forbindelse snor er ikke forpligtet til at være en statisk område.vi bruger  , dbconnectionstring,   i denne sag for nemheds skyld., 3.at skabe en database, for at skabe den database, åben kode bag fil af app 'en, der hedder, app. xaml. ks.der tilføjes følgende kode i slutningen af sin konstruktøren hedder, app,.,, ved hjælp af (userdatacontext forbindelse = nye userdatacontext (userdatacontext. dbconnectionstring)) (hvis (!sammenhæng. databaseexists()) kontekst. createdatabase();}, databasen oprettelse kode indsættes her, således at den database, vil være til stede, før koden fra de vigtigste side løber.koden, kontrollerer, om den database, der findes, og, hvis der ikke er fundet en ny database, der er oprettet.,, 4.database - operationer, når dataene sammenhæng er blevet bygget, og databasen er blevet skabt, vi kan foretage transaktioner på det.du kan indsætte, ajourføre og slette oplysninger fra bordet, vi har skabt.vi har oprettet særskilte klasser for at holde funktioner for at indsætte, slette og ajourføre operationer.,, trin 1: indsættelse af plader, er det hensigtsmæssigt at oprette en særskilt klasse fil,  , databaseadd. cs, for at tilføje noget til databasen.definere en funktion  , adduser, det tager, navn og email_id, som parametre og tilføjer en plade til, user_details, tabel.,, offentlige eller adduser (string navn, serie e - mail) (ved hjælp af (userdatacontext forbindelse = nye userdatacontext (userdatacontext. dbconnectionstring)) (user_details e = nye user_details(); du.user_name = navn og du.user_email = e - mail: sammenhæng. brugere. insertonsubmit (e); sammenhæng. submitchanges();}},,, adduser,   funktion anvender, userdatacontext,   data i forbindelse   tilslutning til den database, skaber en ny instans af  , user_details,   enhed klasse, - - og sætter en rekord. sager, der er blevet tilføjet til data forbindelse er ikke reddet til databasen, indtil   forelæggeændringer,   funktion kaldes.ring, adduser, funktion at tilføje en plade til databasen.,, databaseadd tilføje = nye databaseadd(); der tilsættes. adduser ("vivek", "maskaravivek @ hotmail. com"), trin 2: nydelig optegnelser, skabe en særskilt klasse fil,  , fetchdatabase ks,   for at hente. oplysninger fra databasen.denne kategori indeholder, getallusers, funktion, der returnerer en  , ilist, instans, der indeholder fortegnelser ude fra bordet.,, forbindelsen er oprettet ved hjælp af de data, der er hentet fra registre situation efter den  , user_details, tabel.den linq søgning returnerer en  , ilist, f.eks. med de hentede optegnelser.den  , ilist,   instans er ikke andet end en samling af genstande af samme type,.,, offentlige ilist < user_details > getallusers() {ilist < user_details > liste = ugyldig; anvendelse af (userdatacontext forbindelse = nye userdatacontext (userdatacontext. dbconnectionstring)) (iqueryable < user_details > forespørgsel = fra c i forbindelse. brugerne vælge c liste = forespørgsel. tolist();} tilbage liste;}, i under kode snippet vi definerer en, brugere, klasse med data medlemmer, id, navn og e - mail, til at holde detaljer fra hentede optegnelser, klasse. brugere (offentlige snor id (få; der;} offentlige snor navn (få; der;} offentlige snor e - mail (kom,,), skaber en anden funktion,  , getallusers, det vender tilbageen liste over, brugere, da ringede.   funktionen skaber en ny liste, der skal holde detaljerne i hentede brugere.det gentager gennem, ilist,   instans, der hedder  , usrs, og giver nærmere oplysninger om den enkelte bruger til  , allusers, f.eks. offentlig liste < brugerne > getusers() {ilist < user_details > usrs =. getallusers(); listen < brugerne > allusers = nye liste < brugerne > c); for hvert (user_details m i usrs) (brugere, n = nye users(); n.id = m.id. tostring(); n.name = m.user_name; n.email = m.user_email; allusers. der tilsættes (n)} tilbage allusers;}, i stikprøven, anvendelsen af denne artikel.  , getusers, funktion, der anvendes til at fastlægge, itemsource, af, listbox, ved navn, allusers,   som vist nedenfor.,, fetchdatabase hente = nye fetchdatabase(); allusers.itemssource = hente. getusers();,, st.ep - 3: ajourføring af fortegnelser, ajourføring af fortegnelser, er meget lig tilføjer optegnelser til et bord.   fortsætter med vores modulær fremgangsmåde, skaber vi en ny klasse fil,  , databaseupdate. ks, ajourførte database.i modsætning til slette operationer, er der ingen funktion at ajourføre flere registreringer på én gang.,, tilføje en funktion  , updateusers,  , der accepterer en  , id, navn, og email_id, og ajourfører den tabel linje for de tilsvarende, id,.,, offentlige eller updateuser (int id, serie e - mail - streng navn) (ved hjælp af (userdatacontext forbindelse = nye userdatacontext (userdatacontext. dbconnectionstring)) (iqueryable < user_details > entityquery = fra c i forbindelse. brugere, hvor c.id = = id vælge c; user_details entitytoupdate = entityquery. firstordefault(); entitytoupdate.user_name = navn; entitytoupdate.user_email = e - mail og sammenhæng. submitchanges();}},, funktion forespørgsler databasen og lagrer den første modsvares record i, entitytoupdate, variabel.den ajourfører det ved at tildele den nye værdier og forelægger de ændringer til ajourføring af databasen. databasen er ikke ajourført, indtil vi kalder, submitchanges, funktion.denne funktion vil ajourføre kun første hit plade.det, updateuser, funktion er at ajourføre eksisterende registre i den database, som vist nedenfor.,, databaseupdate ajourføre = nye databaseupdate(); ajourføring. updateuser (1, "maskaravivek @ hotmail. com", "vivek. maskara"), at ajourføre flere plader, du bliver nødt til at iterate gennem de fortegnelser, som du ville gerne opdatere en efter en.i det følgende kode snippet, vi ajourføre navnet på hver anvendelse i databasen, ved at det små.,, ved hjælp af (userdatacontext forbindelse = nye userdatacontext (userdatacontext. dbconnectionstring)) (iqueryable < user_details > entityquery = fra c i forbindelse. brugerne vælge c; ilist < user_details > entitytoupdate = entityquery. tolist(); for hvert (user_details bruger i entitytoupdate) (user.user_name = bruger. user_name. tolower();} sammenhæng. submitchanges();}, trin 4: at slette optegnelser, skabe en klasse fil,  , databasedelete.cs, til slette operationer.i, databasedelete, klasse, tilføje en  , deleteuser,   funktion, der   accepterer et parameter, id, og sletter en enkelt bruger, hvis, id, svarer til de døde i parameter.,, offentlige tomrum deleteuser (string - id) //slette brugeren ved id (ved hjælp af (userdatacontext forbindelse = nye userdatacontext (userdatacontext. dbconnectionstring)) (iqueryable < user_details > entityquery = fra c i forbindelse. brugere, hvor c.id.equals (id) udvælge c; user_details entitytodelete = entityquery. firstordefault(); sammenhæng. brugere. deleteonsubmit (entitytodelete); sammenhæng. submitchanges();}},,   funktion kræver, deleteonsubmit,, som sletter en enkelt resultater fra databasen.ændringerne er reddet, når  , submitchanges, funktion kaldes.den  , deleteuser,   funktion sletter en enkelt plade fra databasen, som vist nedenfor.,, databasedelete slette = nye databasedelete(); slette. deleteuser ("1");,,, system.data.linq, forsamlings funktion, deleteallonsubmit at lade flere registreringer på én gang.følgende kode snippet truncates, user_details, tabel.,, ved hjælp af (userdatacontext forbindelse = nye userdatacontext (userdatacontext. dbconnectionstring)) (iqueryable < user_details > entityquery = fra c i forbindelse. brugerne vælge c; ilist < user_details > entitytodelete = entityquery. tolist(); sammenhæng. brugere. deleteallonsubmit (entitytodelete); sammenhæng. submitchanges();}, denne funktion accepterer en liste over dokumenter og sletter de optegnelser, der er opført på listen.bemærker, at der i begge tilfælde   ændringerne er reddet, når den  , submitchanges, funktion kaldes.,, konklusion, vinduer   telefon apps anvendelse linq for sql for hele databasen operationer.linq for sql anvendes til at definere database skema, udvælge oplysninger, og, undtagen ændringer i den underliggende database, dokumentation, som er bosiddende i app 's isoleret oplagring.   linq for sql giver en samt tilgang til arbejde med data, der er lagret i en database, og som består af en genstand, model og en runtime.jeg   anbefale dem at læse denne msdn artikel for bedste praksis på brug af lokale databaser.   føle sig fri til at downloade   tutorielle kilde filer   at anvende som reference.



Previous:
Next Page: