Window Presentation Foundation



Ähnliche Dokumente
Window Presentation Foundation

Window Presentation Foundation

Window Presentation Foundation

Grundlagen in C# und.net

Grundlagen in C# und.net

1. Aufgabenstellung: Hochschule Harz FB Automatisierung und Informatik Versuch: Projekt erstellen:

Android Programmierung. Studiengang MI

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99

PHP- Umgang mit Datenbanken (1)

MySQL, phpmyadmin & SQL. Kurzübersicht

Grundlagen in C# und.net

Grundlagen in C# und.net

Programmieren lernen in ASP.NET mit C#

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

WPF Bindung. Dr. Beatrice Amrhein

U 8 SQL. = Structured Query Language (heute auch Standard Query Language) ALLGEMEIN:

Bauinformatik 1. Teil 1 / Übungen. Ernst Baeck. Fachgebiet Statik und Dynamik der Flächentragwerke. 31. Mai 2017

MaxDB Einführung in die Installation und Nutzung von MaxDB (Version )

Java Database Connectivity-API (JDBC)

PHP + MySQL. Die MySQL-Datenbank. Hochschule Karlsruhe Technik & Wirtschaft Internet-Technologien T3B250 SS2014 Prof. Dipl.-Ing.

SQL-Loader. Prof. Dr. Waldemar Rohde Dipl.-Ing. Jörg Höppner

Java Database Connectivity-API (JDBC)

Leseprobe. Walter Doberenz, Thomas Gewinnus. Visual C# Grundlagen und Profiwissen ISBN:

S(tructured)Q(uery)L(anguage)

Grundlagen der Informatik 2

Üben von DDL und DML. Ergebnis:

WPF Steuerelemente. Dr. Beatrice Amrhein

Datenbanken. 5 Tabellen. Karl Meier karl.meier@kasec.ch Inhalt. Domänen verwenden Tabellen anzeigen, ändern, löschen Übung

Grundlagen der Informatik 2

Datenbanken. Seminararbeit. Einführung in das wissenschaftliche Arbeiten

DB1. DB SQL-DQL 1 Mario Neugebauer

Unified-E SQL Adapter

SQL und MySQL. Kristian Köhntopp

5.8 Bibliotheken für PostgreSQL

WPF Steuerelemente Listbox, ComboBox, ListView,

Klausur mit Musterlösung

Java Database Connectivity (JDBC) Walther Rathenau Gewerbeschule 1

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7

Datenbank und Tabelle mit SQL erstellen

4. Datenbanksprache SQL

Datenbanken. Proseminar Objektorientiertes Programmieren mit.net und C# Sebastian Pintea. Institut für Informatik Software & Systems Engineering

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

Einführung in die Programmierung für NF MI. Übung 04

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski.

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

A Datenbanken. A.1 Firebird. A.1.1 Installation des Servers. A.1.2 Installation der Beispieldatenbanken. Datenbanken 1

Multimedia im Netz Wintersemester 2013/14. Übung 03 (Nebenfach)


Programmieren II. Beispiele für RDBMS. Relationale Datenbanken. Datenbanken SQL. Dr. Klaus Höppner JDBC. Hochschule Darmstadt SS 2008

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung

Datenbanksysteme SS 2007

Datenbankentwicklung

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

Wie definieren wir das Relationen-

Datenbanken für Online Untersuchungen

Vorlosung: Swing: Erstellen eines JFrames mit GridBagLayout

Multimedia im Netz Wintersemester 2013/14. Übung 02 (Hauptfach)

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15

8a. Exkurs.NET. 8a.1.NET Architektur

Visual Basic 2005 Kochbuch

Visualisierung in Informatik und Naturwissenschaften

Java Application 1 Java Application 2. JDBC DriverManager. JDBC-ODBC Br idge. ODBC Driver Manager. Dr iver C. Dr iver D.

SQL,Teil 2: SELECT. W. Spiegel. Übersicht SELECT. Mehrfache Werte vermeiden: SELECT DISTINCT. Ausgabe ordnen: ORDER BY. Projektion.

Unsere Webapplikation erweitern

Grundlagen von Datenbanken SS 2010 Kapitel 8: Datenbank-Einbettung in Programmiersprachen Prof. Dr. Stefan Böttcher Universität Paderborn

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 15

Kapitel 6 Objektrelationale Datenbanken

Übung 7 DBMS-FUNKTIONALITÄTEN UND DATENIMPORT

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Datumsangaben, enthält mindestens Jahr, Monat, Tag

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL

Grundlagen der Informatik III ERM-Modell Thema: Grundlagen der Datenbanken

Labor 3 - Datenbank mit MySQL

Relationale Datenbanken in der Praxis

Typsystem Plattform- und Sprachenunabhängigkeit in.net

Domänen: Grundtypen, alle vordefiniert, z.b. INTEGER ~ integer NUMERIC (p,s) p: precision, s: scale (nach,) etc.

Oracle: Abstrakte Datentypen:

Eine neue Datenbank erstellen

Datenbanken SQL JDBC. Programmieren II. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester / 21

Das Feld Script können Sie leer lassen. Hier könnten weitere Scripts eingebunden werden, welche Sie z.b. selbst entwickelt haben.

Client/Server-Programmierung

Einteilung von Datenbanken

14. Java Objektorientierung. Klassen, Vererbung, Kapselung

MySQL mit MyLinux. 2/2003 Java unter Linux

Whitepaper. Produkt: combit address manager. Direktanbindung in David 8. combit GmbH Untere Laube Konstanz

Entwicklungsumgebung für die Laborübung

Management of Information Systems. Tutorat: Session 3 Einführung in SQL

Datenbanksysteme 2011

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13

Client/Server-Programmierung

Grundlagen in C# und.net

Transkript:

Windw Presentatin Fundatin Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hchschule Harz FB Autmatisierung und Infrmatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 FB Autmatisierung und Infrmatik: Windws Presentatin Fundatin Inhalt Einführung WPF Layuts C# Sprache Dialg-Elemente, Menüs 2D- / 3D-Grafik, Audi, Vide, Animatin Eigene Kmpnenten Threads DataBinding und Datenbanken Rutet Events, Dependency Prperties, Cmmand Textdarstellung (Flw-FixedDcuments) FB Autmatisierung und Infrmatik: Windws Presentatin Fundatin 2 1

Data Binding Was ist DataBinding? Ansatz, um in einem Prgramm Daten in Elementen darzustellen und mit ihnen zu interagieren Daten können aus verschiedenen Datenquellen an ein Steuerelement gebunden werden: Datenbank (ADO.NET) XML-Datei CLR-Objekte UI-Elemente FB Autmatisierung und Infrmatik: Windws Presentatin Fundatin 3 Data Binding WPF-DataBindung benötigt: Zielbjekt mit Zieleigenschaften (Target bject) Quellbjekt (Surce bject) Bindingbjekt Das Zielbjekt muss DataBinding unterstützen Das Quellbjekt ist eine beliebige Datenquelle Das Bindingbjekt legt fest, wie Ziel und Quelle interagieren: One Time One Way One Way T Surce Tw Way FB Autmatisierung und Infrmatik: Windws Presentatin Fundatin 4 2

Data Binding in XAML: 1. Beispiel Slider-Wert wird zum Label übertragen Binding zeigt die Quelle Path zeigt den Wert FB Autmatisierung und Infrmatik: Windws Presentatin Fundatin 5 Data Binding in XAML: 1. Beispiel <TextBx Grid.ClumnSpan="2" Height="35" Text="{Binding ElementName=slider1,Path=Value}" HrizntalAlignment="Left" Margin="114,44,0,0" Name="textBx1" VerticalAlignment="Tp" Width="219" /> <Slider Height="23" Margin="72,122,48,0" x:name="slider1" VerticalAlignment="Tp" Grid.ClumnSpan="2" Minimum="0" Maximum="1000" TickFrequency="100" TickPlacement="Bth" Value="10" /> Text="{Binding ElementName=slider1,Path=TabIndex}" FB Autmatisierung und Infrmatik: Windws Presentatin Fundatin 6 3

Data Binding in XAML: Beispiele Slider-Wert wird zum Label übertragen Slider-Wert wird zur TextBx übertragen TextBx-Wert wird zum Slider übertragen FB Autmatisierung und Infrmatik: Windws Presentatin Fundatin 7 Data Binding in C#: 2. Beispiel Slider-Wert wird zum Label übertragen Binding zeigt die Quelle Path zeigt den Wert Definitin in C# slider1.minimum = 0; slider1.maximum=1000; slider1.value=10; slider1.tickplacement = System.Windws.Cntrls.Primitives.TickPlacement.Bth; slider1.tickfrequency = 100; Binding b = new Binding(); b.elementname = slider1.name; b.path = new PrpertyPath("Value"); textbx1.setbinding(textbx.textprperty, b); FB Autmatisierung und Infrmatik: Windws Presentatin Fundatin 8 4

Data Binding in C#: 2. Beispiel Änderungen: b.mde = BindingMde.OneTime; FB Autmatisierung und Infrmatik: Windws Presentatin Fundatin 9 Data Binding in XAML: 3. Beispiel <TextBx Text="{Binding ElementName=slider1, Path=Value,Mde=TwWay, UpdateSurceTrigger=PrpertyChanged}" /> FB Autmatisierung und Infrmatik: Windws Presentatin Fundatin 10 5

Die Change-Ntificatin-Eigenschaft Die Change-Ntificatin-Eigenschaft srgt dafür, dass sich Änderungen auf der UI zum Objekt durchschlagen Arten der Change Ntificatin: PrpertyChanged: Quell-Daten werden geändert, wenn sich Daten im Ziel-Objekt ändern, z. B. Check- der Radibuttns LstFcus: Quell-Daten werden aktualisiert, wenn das Ziel- Objekt seinen Fkus verliert, z. B. Eingabe-Cntrls wie Textbxen Explicit: Quell-Daten werden nur dann aktualisiert, wenn das Ziel eine Aktualisierung explizit zulässt, z. B. nach der Eingabevalidierung Kann nur mit den Interaktinsmdus TwWay und OneWayTSurce verwendet werden FB Autmatisierung und Infrmatik: Windws Presentatin Fundatin 11 Datenbanken Mögliche Varianten ODBC Prviders (Excel, Access, Textdatei, AS 400, DB2) OLE DB Data Prviders (Excel, Access, Textdatei, AS 400, DB2) OLE DB Data Link (Data Link File UDL) Net-Prvider ADO.net LINQ (Language Integrated Query) Windws Frms vs. Windws Presentatin Fundatin Datenbank-Unterstützung Access MS SQL Server (Express Editin bis 2GB) MySQL Firebird (Server und Embed Versin) Oracle (Micrsft, Oracle, Crelab) Pstgre (Crelab) Sybase VistaDB FB Autmatisierung und Infrmatik: Windws Presentatin Fundatin 12 6

Datenbanken Mögliche GUI-Varianten DataGridView Einbau der FK in das Grid (CmbBx) Master / Details (DetailsView, nur ein Datensatz) Gruppenwechsel mit Editzeile, CmbBx, Checkbx, ListView etc. Weitere Eigenschaften Aufruf eines Filters VirtualMde für sehr grße Datenmengen Auslesen der Tabellen in der Datenbank Auslesen der Attribute mit Datentypen pr Tabelle Auslesen der Fremdschlüssel etc. pr Tabelle FB Autmatisierung und Infrmatik: Windws Presentatin Fundatin 13 Datenbanken mit.net Prvider erstellen Struktur Der.net Prvider für Firebird und andere DBS kapselt alle Zugriffe auf die Datenbank Vllständig in C# geschrieben Funktinen: - Cnnectin - GetSchema - Open - Clse - BeginTransactin - ChangeDatabase - CreateCmmand - Dispse - State (Status: Open Clse) - FbCnnectin.CreateDatabase - FbCnnectin.DrpDatabase - FbCnnectin.ClearAllPls - FbCnnectin.ClearPl FB Autmatisierung und Infrmatik: Windws Presentatin Fundatin 14 7

Datenbanken erstellen mit Firebird Vraussetzungen Ablauf Firebird Server installiert Firebird Client-Installatin Firebird Embed-Versin, einfache DLL.net Prvider für Firebird ab Visual Studi 2005 Erstellen eines Prjektes Einbinden des Prviders Erstellen einer DBS-Klasse (Kapselung) Erstellen einer Query-Klasse (Kapselung) Aufbau der GUI (DataGridView) Erstellen einer Verbindung (cnnectin) SQL-Befehl hlen Query-Abfrage starten DataTable dem Grid zuweisen FB Autmatisierung und Infrmatik: Windws Presentatin Fundatin 15 Vergleich Firebird und.net Datentypen Firebird type.net type FbDataReader Example Methde BIGINT System.Int64 GetInt64() BIGINT Reading Example (C#) BLOB System.Byte[] GetBytes() BLOB Reading Example (C#) BLOB SUB_TYPE 1 System.String GetString() BLOB SUB_TYPE 1 Reading Example (C#) CHAR System.String GetString() CHAR Reading Example (C#) DATE System.DateTime GetDateTime() DATE Reading Example (C#) DECIMAL System.Decimal GetDecimal() DECIMAL Reading Example (C#) DOUBLE PRECISION System.Duble GetDuble() DOUBLE PRECISION Reading Example (C#) FLOAT System.Flat GetFlat() FLOAT Reading Example (C#) INTEGER System.Int32 GetInt32() INTEGER Reading Example (C#) NUMERIC System.Decimal GetDecimal() NUMERIC Reading Example (C#) SMALLINT System.Int16 GetInt16() SMALLINT Reading Example (C#) TIME System.DateTime GetDateTime() TIME Reading Example (C#) TIMESTAMP System.DateTime GetDateTime() TIMESTAMP Reading Example (C#) VARCHAR System.String GetString() VARCHAR Reading Example (C#) FB Autmatisierung und Infrmatik: Windws Presentatin Fundatin 16 8

DataGridView DataTable 1 Tabelle Navigatr Binding Cnnectin DBS CheckBx Textfield DataSet n Tabelle FB Autmatisierung und Infrmatik: Windws Presentatin Fundatin 17 FbCnnectin cnn = new FbCnnectin(sArg); public DataTable getdbsdata(string ssql) { //FbCmmand cmmand = new FbCmmand(sSQL, _cnn); FbDataAdapter da = new FbDataAdapter(sSQL, _cnn); DataTable dt = new DataTable("RELATIONS"); da.fill(dt); // füllt die DataTable mit Daten return dt; } // hier kann man mehrere Tabellen erhalten, für WPF public DataSet getdbsdataset(string ssql, string stable) { //FbCmmand cmmand = new FbCmmand(sSQL, _cnn); FbDataAdapter da = new FbDataAdapter(sSQL, _cnn); DataSet ds = new DataSet(); da.fill(ds, stable); // z. B. "Emplyee", wichtig da es mehrere gibt return ds; } FB Autmatisierung und Infrmatik: Windws Presentatin Fundatin 18 9

Abfrage einer SQL-Anweisung: Direkte Zuweisung zum Grid string sfilename = "EMPLOYEE.FDB"; string ssql1 = "select * frm EMPLOYEE"; _dbs.setdbs(sfilename); DataSet ds = dbs.getdbsdataset(ssql, "EMPLOYEE"); datagrid1.datacntext = ds; FB Autmatisierung und Infrmatik: Windws Presentatin Fundatin 19 1. Datenbankbeispiel: DataBase1 FB Autmatisierung und Infrmatik: Windws Presentatin Fundatin 20 10

1. Datenbankbeispiel: DataBase1 1. Register Einfaches DataGrid Editr für SQL-Befehle Schalter zum Ausführen Autmatisches DataBinding 2. Register Einfaches DataGrid manuelles DataBinding, feste Abfrage 3. Register Einfaches DataGrid DataGridCmbBxClumn für die Fachbereiche 4. Register Einfaches DataGrid Master-Detail FB Autmatisierung und Infrmatik: Windws Presentatin Fundatin 21 1. Datenbankbeispiel: DataBase1 Ablauf (1) Datenbankdesigner Erstellen des lgischen ER-Mdell Erstellen der DDL-Befehle Erstellen der Datenbank Aufrufen vn FBCnsle Erstellen einer neuen Datenbank Einfügen der DDL-Befehle (create Table) Einfügen der DML-Befehle (insert int) FB Autmatisierung und Infrmatik: Windws Presentatin Fundatin 22 11

1. Datenbankbeispiel: DatenbankDesigner FB Autmatisierung und Infrmatik: Windws Presentatin Fundatin 23 Tabelle Student FB Autmatisierung und Infrmatik: Windws Presentatin Fundatin 24 12

Tabelle FB FB Autmatisierung und Infrmatik: Windws Presentatin Fundatin 25 Tabellen: TABLE FB int PINDEX char(5) KURZNAME varchar(50) LANGNAME TABLE STUDENT int MATRNR varchar(50) NACHNAME varchar(50) VORNAME MATRNR muss größer 0 sein Beziehung Student mit FB FB Autmatisierung und Infrmatik: Windws Presentatin Fundatin 26 13

Ablauf (2): FBCnsle Erstellen der Datenbank; Aufrufen vn FBCnsle Erstellen einer neuen Datenbank Einfügen der DDL-Befehle (create Table) Einfügen der DML-Befehle (insert int) Datei WPF-DML.txt FB Autmatisierung und Infrmatik: Windws Presentatin Fundatin 27 Prjekt DataBase1 Ablauf (3) Erstellen des Prjektes: Hmepage, Laden der ZIP-Datei Verändern des Prjektes: Einfügen der Klasse DBS, siehe Hmepage Einfügen eines Verweises zum Firebird-Prvider FB Autmatisierung und Infrmatik: Windws Presentatin Fundatin 28 14

Laden des Verweises auf den Prvider, schn im Prjekt Ablauf: Prjekt-Explrer Verweise Rechte Maustaste Verweis hinzufügen Register Durchsuchen Wechseln ins Debug- Verzeichnis Auswahl der Fireb.dll FB Autmatisierung und Infrmatik: Windws Presentatin Fundatin 29 Prjekt DataBase1 Ablauf (4) Erstellen des Prjektes: Hmepage, Laden der ZIP-Datei Verändern des Prjektes: Einfügen einer glbalen Variable dbs In lad: Feste Zuweisung zur Studenten-Datenbank STUDENT- WPF.FDB grid1.itemssurce = dt1.defaultview; grid1.autgenerateclumns = true; grid1.isreadonly = true; grid1.canuseraddrws = false; grid1.canuserdeleterws = false; grid1.canuserresizeclumns = true; grid1.canusersrtclumns = true; FB Autmatisierung und Infrmatik: Windws Presentatin Fundatin 30 15

Prjekt DataBase1 Ablauf (5) bngrid1_sql1_click: String sql = "Select * frm FB"; grid1.itemssurce = dt1.defaultview; bngrid1_sql2_click: String sql = "Select * frm Student"; grid1.itemssurce = dt1.defaultview; bngrid1_sql3_click: String sql = "select * frm student rder by Nachname"; grid1.itemssurce = dt1.defaultview; bnsql_click: Auslesen des Editrs Ausführen des SQL-Befehls Ausgabe in grid1 FB Autmatisierung und Infrmatik: Windws Presentatin Fundatin 31 Prjekt DataBase1 Ablauf (6) Manuelles Definieren der Felder im zweiten DataGrid grid2 Jeweils eine DataGrid.Clumns Feld: MATRNR Width="100" Header="Matrnr Feld NACHNAME Width="100" Header="Nachname" Feld VORNAME Width="100" Header="Vrname" Feld FINDEX Width="100" Header="Findex" Binding="{Binding FINDEX}" FB Autmatisierung und Infrmatik: Windws Presentatin Fundatin 32 16

Prjekt DataBase1 Ablauf (7) bngrid2_sql1_click: String sql = "Select * frm Student"; grid1.itemssurce = dt1.defaultview; FB Autmatisierung und Infrmatik: Windws Presentatin Fundatin 33 Prjekt DataBase1: 4. Register FB Autmatisierung und Infrmatik: Windws Presentatin Fundatin 34 17

Prjekt DataBase1 Ablauf (8) Viertes DataGrid grid4a und grid4b Master/Details grid4a Autmatisches Anzeigen der Felder à la grid1 Es darf nur ein Eintrag ausgewählt werden Event grid4a_selectinchanged erzeugen grid4b Abfragen des SelectedIndex vn grid4a Wenn >=0 dann Abfrage des SelectedItems vn grid4a KARSTEN int pindex = (int) 42; String sql = "Select * frm Student where FINDEX=" + pindex; Abfrage und Eintragen FB Autmatisierung und Infrmatik: Windws Presentatin Fundatin 35 Prjekt DataBase1 Ablauf (9) Schalter Insert Student Eintragen eines neuen Studenten Matrikelnummer: 88888 Nachname: Garret Vrname: David FB Wirtschaftswissenschaften FB Autmatisierung und Infrmatik: Windws Presentatin Fundatin 36 18

Datenbank-CmbBx: 3. Register FB Autmatisierung und Infrmatik: Windws Presentatin Fundatin 37 19