Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

2007-10-18FEN Databaser/DBAdgang21 DB-adgang - Connectionless Connectionless DataAdapter DataSet.

Lignende præsentationer


Præsentationer af emnet: "2007-10-18FEN Databaser/DBAdgang21 DB-adgang - Connectionless Connectionless DataAdapter DataSet."— Præsentationens transcript:

1 2007-10-18FEN Databaser/DBAdgang21 DB-adgang - Connectionless Connectionless DataAdapter DataSet

2 2007-10-18FEN Databaser/DBAdgang22 Connection vs. Connectionless Connection: –Open Connection –Udfør db-operationer –Luk Connection –Der arbejdes på aktuelle data –Andre applikationer lukkes evt. ude

3 2007-10-18FEN Databaser/DBAdgang23 Connectionless: –Tag en kopi af et databaseudsnit –Udfør db-operationer på kopien –Andre applikationer kan ændre data –Der arbejdes evt. på en uaktuel kopi af data Connection vs. Connectionless Data ændres i den lokale kopi: –ved update checkes om andre har ændret dataene i kopien –i så fald afvises opdateringen (ConcurrencyException)

4 2007-10-18FEN Databaser/DBAdgang24 Overblik - disconnected databaseadgang Opret en Connection (Kan i VS.NET gøres gennem DataAdapteren) Opret en DataAdapter Tilføj SQL-statement(s) til DataAdapteren Fyld et DataSet-objekt (kopi af dele af db) vha. en DataAdapter DataSet-objekt indeholder DataTable-objekter DataTable-objekter indeholder collections af rækker og kolonner

5 2007-10-18FEN Databaser/DBAdgang25 Disconnected - skridt for skridt 1.Opret en Connection 2.Opret en DataAdapter (indlejrer SQL) 3.Fyld et DataSet med indholdet af DataAdapter 4.Opdater evt. DB med DataAdapters Update()

6 2007-10-18FEN Databaser/DBAdgang26 Opret forbindelse #region Connection object code // Create and open a connection. SqlConnection cn = new SqlConnection(); cn.ConnectionString = @"Server=PCM06073\SQLEXPRESS;” +”Initial Catalog=miniBank;Integrated Security=True;"; cn.Open(); ShowConnectionStatus(cn); #endregion

7 2007-10-18FEN Databaser/DBAdgang27 Fyld DataSet // Create a SQL-string. string strSQL = "SELECT * FROM Account"; // Create a data adapter, a data set and a data table SqlDataAdapter myDA = new SqlDataAdapter(strSQL, cn); DataSet ds = new DataSet(); myDA.Fill(ds, "Account"); cn.Close(); ShowConnectionStatus(cn);

8 2007-10-18FEN Databaser/DBAdgang28 Udskriv data - DataSet indeholder collection af DataTable-objekter DataTable dtAccounts = ds.Tables["Account"]; //Print table headings Console.WriteLine(dtAccounts.Columns[0].Caption + "\t" + dtAccounts.Columns[1].Caption + "\t" + dtAccounts.Columns[2].Caption + "\t" + dtAccounts.Columns[3].Caption); Console.WriteLine(); // Loop over the results. for(int i= 0; i<dtAccounts.Rows.Count; i++) { DataRow r = dtAccounts.Rows[i]; Console.WriteLine(r["accNo"]+"\t"+r["balance"]+"\t" + r["ir"]+"\t"+r["clCpr"]); }

9 2007-10-18FEN Databaser/DBAdgang29 Hvis DB skal opdateres Tilføj et commandobjekt til dataadapteren –InsertCommand –UpdateCommand –DeleteCommand Gøres vha. parametriserede queries, fx: da.InsertCommand = new OleDbCommand("INSERT INTO ” + Ansat (løn, navn, stilling) VALUES (?, ?, ?)",dbconn); da.Update(ds, ”Ansat”); 1. parameter: sql 2. parameter: connection Her opdateres DB. Kan fejle (ConcurrencyException)

10 2007-10-18FEN Databaser/DBAdgang210 Traditionel WEB-adgang til DB Præsentationslag: –WEB-serveren genererer HTML, som præsenteres i browseren hos klinten Applikationslag (forretningslogik) er indlejeret i web-serveren i form af scripts, som bla. kalder databaselaget Databaselag (centraliseret DBMS) Interne applikationer på applikationsserveren: –forretningslogik er dubleret (WEB-server og appl.- server) WEB-server Databaselag – (fx SQL-baserede DBMS på en databaseserver) WEB- klienter Præsentationslag (browser) Applikationslag Applikations- server Dedikeret klient firewall

11 2007-10-18FEN Databaser/DBAdgang211 I dag: n-tier Client/Server arkitektur: Præsentationslag: –dedikerede klienter, inden for eller uden for firewallen –web-browser via en web-server. Bemærk, at web-serveren er klient i forhold til applikations-serveren –Dedikerede klienter, som til via web-services på web-serveren (web-serveren fungerer som proxy) Applikationslag (forretningslogik) Bør ikke ligge på web-serveren Databaselag (centraliseret DBMS) –Der kan være flere database- servere i databaselaget, i så fald får applikationslaget rollen som koordinator ved globale transaktioner Tilgår web- services Applikations- server Databaselag – (fx SQL-baserede DBMS’er på flere databaseservere) WEB- klienter Præsentationslag WEB- server firewall Dedikeret klient Dedike- ret klient

12 2007-10-18FEN Databaser/DBAdgang212 Særlige forhold ved WEB-adgang Skal vi vælge Connection-orienteret eller Connection-løs forbindelse? Applikations- server Databaselag – (fx SQL-baserede DBMS’er på flere databaseservere) WEB- klienter Præsentationslag WEB- server firewall Dedikeret klient Dedike- ret klient


Download ppt "2007-10-18FEN Databaser/DBAdgang21 DB-adgang - Connectionless Connectionless DataAdapter DataSet."

Lignende præsentationer


Annoncer fra Google