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 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.
ADO.NET Arkitektur Non Microsoft Vi bruger den her
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 Native Oracle support does not ship with .NET, but can be downloaded from http://otn.oracle.com/tech/windows/odpnet/
To måder at tilgå db på Connected Disconnected Å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); You don't need to install MS Access (the product) to programmatically work with MS Access databases; the necessary OleDB provider is installed as part of .NET.
2: hent records Hent records vha. SQL-Select DataReader uses a server-side cursor to feed records to client upon request.
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.