Software Development fundamentals

Slides:



Advertisements
Verwante presentaties
KINN 2010 •OOP •O Object •O Georiënteerd •P Programmeren.
Advertisements

Module 7 – Hoofdstuk 5 (1) SQL – een begin.
Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 1 Internetapplicaties Deel 14: Eerste echte e-commerce applicatie: Implementatie (vervolg)
PHP & MYSQL LES 03 PHP & DATABASES. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
Instructie Programmeren Task 8 5JJ70. PAGE 2 Task 8: Double Linked List Het doel van deze opdracht is: Het opbouwen van een tweetal klassen, die samen.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Van domeinklasse tot implementatie
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Base: bewerkingen 2 soorten - Oplopend- Aflopend.
Klassen en objecten.
Computervaardigheden en Programmatie Universiteit AntwerpenDatabank - Basis 4.1 Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen.
Download en installeer de gereedschappen
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Vorige week: Referentiele integriteit
Workshop PHP Een productencatalogus Met database.
Java DataBase Connectivity
Presenteert:.
Deel X: JSP + Java + database 1 Internetapplicaties Deel 10: JSP + Java + database: Client Server via http.
Windows Applicaties Bouwen met Visual Studio.NET Sijmen Koffeman Development Consultant Microsoft.
KINN 2010 OOP O Object O Georiënteerd P Programmeren.
SQL ( SERVER ) Les #02: T-SQL. A GENDA Herhaling les 4 Views SELECT…INTO Beheren van tabellen: CREATE ALTER DROP Opdracht voor de volgende les.
Computervaardigheden Hoofdstuk 4 — Databank (Basis)
Datamodellering en –verwerking 8C020 college 9. Terugblik college week 8 Terugkoppeling opdracht deel A Toepassingen van Petri-netten in biologie Oefeningen.
Databases Hoofdstuk 25 Hoofdstuk 24.
Front-end development
Java Objectgeoriënteerd Programmeren in Java met BlueJ
 C++ heeft een inheritance mechanisme  Manier om functionaliteit te ‘erfen’ van een parrent class ◦ Polymorphisme ◦ Zoals we het ook in C# kennen.
OOP en.NET. Objecten Is geen ‘nieuw’ mysterieus woord Overal om ons heen zien we objecten: – TV – Computer – Auto – Wasmachine – ….
Wat is SQL (1)? SQL (Structured Query Language):  is een zeer krachtige taal met een beperkt vocabulaire (aantal ‘woorden’)  is declaratief (‘WAT’ niet.
Windows applicatieontwikkeling
Datamodelleren FCO-IM methode.
– Software development fundamentals
Software Development fundamentals
SQL Cursus deel
Gameprogrammeren: Lists en interfaces
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Gameprogrammeren: Herhalingen
Gameprogrammeren: Abstracte klassen
Software Development fundamentals
ASP.NET MVC Web Development
Informatie-analyse 1: Er zijn veel manieren om een database te vullen
Software Development fundamentals
ASP.NET MVC Web Development
SQL Les February 2019.
ASP.NET MVC Web Development
SQL Les 3 17 February 2019.
Datamodelleren FCO-IM methode.
SQL Les 7 24 February 2019.
SQL Les 1 5 April 2019.
SQL Les 6 14 April 2019.
Software Development fundamentals
– Software development fundamentals
Software Development fundamentals
Software Development fundamentals
SQL Les 9 12 May 2019.
SQL Les 4 12 May 2019.
Software Development fundamentals
– Software development fundamentals
– Software development fundamentals
Windows applicatieontwikkeling
Software Development fundamentals
Software Development fundamentals
Software Development fundamentals
Software Development fundamentals
Software Development fundamentals
Software Development fundamentals
Software Development fundamentals
Software Development fundamentals
Software Development fundamentals
Software Development fundamentals
Transcript van de presentatie:

Software Development fundamentals ADO.NET

voorkennis ADO.NET = Verzameling classes in het .NET framework die we kunnen gebruiken voor databasetoegang We hebben er de vorige keer 3 besproken, welke waren dat? Wat was hun functie?

inhoudsopgave Voorkennis ADO.NET SqlConnection (20 min) Connectionstring Verbindingsgegevens uit configuratiebestand lezen Using statement SqlCommand (5 min) Parameterized queries SqlDataReader (5 min) Eenvoudige architectuur (10 min) Oefenen met de klas

SqlConnection Met SqlConnection maken we een verbinding met de database SqlConnection con = new SqlConnection(@"Data Source=(localdb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\mydb.mdf;Initial Catalog=mydb;Integrated Security=True;MultipleActiveResultSets=True"); Ok, ok, even opnieuw…

SqlConnection Met SqlConnection maken we een verbinding met de database SqlConnection con = new SqlConnection(); Zo, dat is beter. Om een verbinding te maken heb je ook een ConnectionString nodig. Dat is één string die alle toegangsgegevens bevat. Voorbeeld connectionstring voor Sql Server Express 2014 LocalDB: Data Source=(localdb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\mydb.mdf;Integrated Security=True;

SqlConnection Je kunt meteen de connectionstring meegeven aan de constructor: SqlConnection con = new SqlConnection(@"Data Source=(localdb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\mydb.mdf;Integrated Security=True;"); De @ gebruiken we om aan te geven dat we escape characters willen negeren (de \) Maar, waar kan je de juiste connectionstring vinden?

connectionstring Optie 1: Opzoeken op internet en aanpassen Optie 2: Dubbeklikken op het .mdf bestand om de database te openen. Dan bij de properties kijken naar de connectionstring, daar staat: Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename="c:\users\eindbaas\documents\visual studio 2015\Projects\MyApplication\MyApplication\MyDatabase.mdf";Integrated Security=True Optie 3: In Visual Studio onder Data Sources > Add New Data Source > Next > Next > Connectionstring uitklappen. Daar staat: Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;Integr ated Security=True Dit kan je overnemen, en de wizard annuleren.

App.config Je kunt ook je connectionstring bewaren in het App.config bestand, in het <configuration> element: <connectionStrings> <add name="MyConnectionString" connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings> En dan ophalen in C# code: string conStr = System.Configuration.ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString; Je moet dan alleen wel een reference naar System.Configuration toevoegen aan je project.

Het is toch gewoon een .mdf bestand?

SqlCommand SqlCommand cmd = new SqlCommand("SELECT * FROM product", con); Om vervolgens de query uit te voeren, kunnen we kiezen tussen: int result = cmd.ExecuteNonQuery(); Voert de query uit en returned het aantal ‘affected rows’; Handig voor Update, Delete, Insert SqlDataReader reader = cmd.ExecuteReader(); Voert de query uit en returned een DataReader om mee door de resultaten te lopen. Voor Select.

close Klaar met je SqlConnection? Dan sluit je ‘m con.Open(); SqlCommand cmd = new SqlCommand(“DELETE FROM product WHERE id = 1", con); int result = cmd.ExecuteNonQuery(); con.Close();

Using gebruiken using (SqlConnection connection = new SqlConnection(connectionString)) { try connection.Open(); // doe iets met de connection, voer queries uit etc. } catch (Exception) // doe iets met de foutmelding } Het using statement zorgt ervoor dat de connection wordt gesloten en opgeruimd zodra je ermee klaar bent

SqlCommand while (reader.Read()) { Console.WriteLine(reader["eenkolom"]); } Nu worden in de console onder elkaar alle waarden uit de kolom ‘eenkolom’ getoond. Je kunt deze while loop ook gebruiken om een lijst met objecten te vullen. Die lijst met objecten kan je dan in je console/form/webpagina tonen.

SqlCommand while (reader.Read()) { Console.WriteLine(reader["eenkolom"]); } Nu worden in de console onder elkaar alle waarden uit de kolom ‘eenkolom’ getoond. Je kunt deze while loop ook gebruiken om een lijst met objecten te vullen. Die lijst met objecten kan je dan in je console/form/webpagina tonen.

Lijst met objecten vullen // Ga er even vanuit dat er een Product class bestaat List<Product> lijst = new List<Product>(); while (reader.Read()) { Product p = new Product(); p.Id = int.Parse(reader[“id”]); p.Description = reader[“description”].ToString(); p.Price = double.Parse(reader[“price”]); lijst.Add(p); } // Nu is de lijst gevuld met alle producten uit de database

Entity classes Een entity object of POCO (Plain Old CLR Object) Een object dat (min of meer) overeenkomt met een rij uit je database. Je krijgt dan bijvoorbeeld de volgende architectuur voor een todo-applicatie: 1 Form class (de UI) 1 POCO class (TodoItem) 1 DB Access class (TodoDb) De UI DB Methodes Bevat data

Opdracht Hoe zou de code van de volgende classes er precies uitzien? We verdelen de 5 methods door de klas. Elk groepje werkt 10 minuten aan een method. Aan het eind delen we het resultaat met elkaar. Ga uit van een tabel TodoItem, en laat de ConnectionString leeg.

Wist je dat… Feit 1: ADO.NET gebruik maakt van inheritance Voorbeeld: SqlConnection erft over van DbConnection Net als OleDbConnection, OdbcConnection en OracleConnection https://msdn.microsoft.com/en-us/library/dw70f090(v=vs.110).aspx Feit 2: Een verzameling classes om te werken met een database noemen we een Data Provider. https://msdn.microsoft.com/en-us/library/dd363565.aspx

Vragen Zijn er vragen?