130 likes | 278 Views
Databaseadgang fra C#:. Eksempel på realisering af domænemodel. Del af design-klassediagram i et system til registrering af ansatte og projekter. Eksempel på realisering af domænemodel. Først skal databasen oprettes. Stien skal findes. Eksempel på realisering af domænemodel.
E N D
Eksempel på realisering af domænemodel • Del af design-klassediagram i et system til registrering af ansatte og projekter
Eksempel på realisering af domænemodel • Først skal databasen oprettes Stienskalfindes.
Eksempel på realisering af domænemodel • En tabel pr. klasse: • Ansat • ArbejderPaa • Projekt • I SQL Server
Eksempel på realisering af domænemodel Nogle testdata indsættes. Så har vi en database.
Non Microsoft Vi bruger den her ADO.NET Arkitektur
Database library • Databasetilgang tilbydes af namespace System.Data.* • Klasserne kendes samlet som ADO.NET • “native support” til SQL Server og Oracle • Supporterer andre db via den ældre OleDB-teknologi • Kræver kendskab til SQL • Der bruges forskellige klasser til de forskellige databaser, fx findes der en OleDbCommand, en SqlCommand og en OracleCommand. Alle implementerer IDbCommand. • Anvendte namespaces: • generelt: System.Data, System.Data.Common • SQL Server: System.Data.SqlClient • Oracle: System.Data.OracleClient • OleDB: System.Data.OleDb
To måder at tilgå db på • Connected • Åbn connection • Læse-/Skrivetilgang (select, insert, update og delete) via Command-objekt • Ved læsetilgang (select) returneres et DataReader-objekt • Luk Connection • Disconnected • Fyld et DataSet-objekt (kopi af dele af db) vha. en DataAdapter • DataAdapter indpakker SQL-statement(s) • DataSet-objekt indeholder DataTable-objekter • DataTable-objekter indeholder collections af rækker og kolonner
Overblik – connected databaseadgang • Tre skridt: • åbn connection til databasen • eksekver SQL for at opdatere/læse DB • luk connection
1: åbn connection • Connections åbnes på grundlag af en connection string • Kan findes i Visual Studio // Create and open a connection. SqlConnection cn = new SqlConnection(); cn.ConnectionString = "Data Source=PCM06073\\SQLEXPRESS;” +”Initial Catalog=vw;Integrated Security=True;"; cn.Open(); ShowConnectionStatus(cn);
2: hent records • Hent records vha. SQL-Select
3: luk connection • Husk at lukke connection… • Så andre kan få adgang til db dbConn.Close(); Se demos\BankingWithFullMonty
Opgave Brug dette projekt: ..\dag1\demos\EmpProjV1 • Tilføj en controller-klasse, som ser tingene fra projektets side med passende metoder. • Lav databaseadgang, så controlleren kan kommunikere med Ansat-Projekt databasen. • Tilføj en GUI.