Window Presentation Foundation



Ähnliche Dokumente
Window Presentation Foundation

Grundlagen in C# und.net

Window Presentation Foundation

Grundlagen in C# und.net

Labor 3 - Datenbank mit MySQL

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

Datumsangaben, enthält mindestens Jahr, Monat, Tag

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

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

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

Grundlagen der Informatik 2

Java Database Connectivity (JDBC) Walther Rathenau Gewerbeschule 1

Oracle: Abstrakte Datentypen:

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

Anleitung zur Einrichtung einer ODBC Verbindung zu den Übungsdatenbanken

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick Parameterübergabe...

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

SQL und MySQL. Kristian Köhntopp

Fachhochschule Kaiserslautern Labor Datenbanken mit MySQL SS2006 Versuch 1

MySQL, phpmyadmin & SQL. Kurzübersicht

WPF Steuerelemente Listbox, ComboBox, ListView,

Window Presentation Foundation

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

seit Java 1.1 Bestandteil der API: packages java.sql, javax.sql

C# - Einführung in die Programmiersprache Arbeiten mit ADO.NET. Leibniz Universität IT Services Anja Aue

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum:

PHP und MySQL. Integration von MySQL in PHP. Zellescher Weg 12 Willers-Bau A109 Tel Michael Kluge (michael.kluge@tu-dresden.

Relationale Datenbanken in der Praxis

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

Multimedia im Netz. Übung zur Vorlesung. Ludwig-Maximilians-Universität Wintersemester 2010/2011

SQL structured query language

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

Business Intelligence Praktikum 1

E-Commerce: IT-Werkzeuge. Web-Programmierung. Kapitel 6: Datenbankabfragen mit SQL und PHP. Stand: Übung WS 2014/2015

Datenbanken für Online Untersuchungen

Einteilung von Datenbanken

Office Kommunikation

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Datenmanagement in Android-Apps. 16. Mai 2013

Tutorial04: Swing: Erstellen eines JFrames mit einem JSplitPane

SQL (Structured Query Language) Schemata Datentypen

MySQL Installation. AnPr

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

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

Sructred Query Language

Office Kommunikation

Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11

Android Programmierung. Studiengang MI

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

MGS S PA ACCOUNT CONVERTER

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

105.3 SQL-Datenverwaltung

JDBC. Allgemeines ODBC. java.sql. Beispiele

desk.modul : WaWi- Export

Übung 7 DBMS-FUNKTIONALITÄTEN UND DATENIMPORT

Erstellen eines Office-COM-Add-In mit Visual Basic 2005 Express Edition

Prozedurale Datenbank- Anwendungsprogrammierung

MySQL Queries on "Nmap Results"

IV. Datenbankmanagement

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2

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

7. Übung - Datenbanken

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

PostgreSQL unter Debian Linux

PHP- Umgang mit Datenbanken (1)

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler

Das Compare-, Merge- und Versionierungstool für Microsoft Dynamics NAV. NAVObjectEditor RECY CLE

Lokale Installation von DotNetNuke 4 ohne IIS

SMARTtill Server mit Manager

Rechnernetze an der HS-Harz. Dipl.-Inf. Michael Wilhelm. Dipl.-Ing. May

MySQL 101 Wie man einen MySQL-Server am besten absichert

Business Intelligence Praktikum 1

datenfabrik.phone Telefonnummern mit den SQL Server Integration Services validieren

SQLJ. Standardisierte Java-DB. DB-Schnittstelle. Spezifikationen. Oracle, IBM, Informix, Sybase,, Tandem, Sun, Microsoft stehen dahinter

datenfabrik. Validieren von -Adressen 1

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und combit GmbH Untere Laube Konstanz

Erstellen einer Datenbank. Datenbankabfragen

Grundlagen in C# und.net

Grundlagen in C# und.net

SQL, MySQL und FileMaker

SQL-INJECTIONS. N E T D E V E L O P E R S G R O U P B E R L I N B R A N D E N B U R G,

OP-LOG

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

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

Qt-Projekte mit Visual Studio 2005

Entwicklungsumgebung für die Laborübung

BLOB oder wie kommt das Bild in

Postgresql. Michael Dienert. 10. Dezember Installationsort der Programme... 1

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

Options- und Freitext-Modul Update-Anleitung

Fakultät Angewandte Informatik Programmierung verteilter Systeme Übungen zur Vorlesung Informatik II, Blatt 6

Pervasive.SQL ODBC Treiber. ab ABACUS er-Version Installationsanleitung

Dokumentation zur Anlage eines JDBC Senders

Interaktive Webseiten mit PHP und MySQL

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

Hier folgt eine kurze Aufstellung über die verwendete Architekur. Die Angaben sind ohne Gewähr für Vollständigkeit oder vollständige Richtigkeit.

Windows Presentation Foundation (WPF) -Grundlagen -Steuerelemente. Dr. Beatrice Amrhein

JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann.

Transkript:

Window Presentation Foundation Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 FB Automatisierung und Informatik: Windows Presentation Foundation

Inhalt Einführung WPF Layouts C# Sprache Dialog-Elemente, Menüs 2D- / 3D-Grafik, Audio, Video, Animation Eigene Komponenten Threads DataBinding Datenbanken Routet Events, Dependency Properties, Command Textdarstellung (Flow-FixedDocuments) FB Automatisierung und Informatik: Windows Presentation Foundation 2

Datenbanken Mögliche Varianten o ODBC Providers (Excel, Access, Textdatei, AS 400, DB2) o OLE DB Data Providers (Excel, Access, Textdatei, AS 400, DB2) o OLE DB Data Link (Data Link File UDL) o Net-Provider o ADO.net o LINQ (Language Integrated Query) o Windows Forms vs. Windows Presentation Foundation Datenbank-Unterstützung o Access o MS SQL Server (Express Edition bis 2GB) o MySQL o Firebird (Server und Embed Version) o Oracle (Microsoft, Oracle, Corelab) o Postgre (Corelab) o Sybase o VistaDB FB Automatisierung und Informatik: Windows Presentation Foundation 3

Datenbanken Mögliche GUI-Varianten o DataGridView o Einbau der FK in das Grid (ComboBox) o Master / Details (DetailsView, nur ein Datensatz) o Gruppenwechsel mit Editzeile, ComboBox, Checkbox, ListView etc. Weitere Eigenschaften o Aufruf eines Filters o VirtualMode für sehr große Datenmengen o Auslesen der Tabellen in der Datenbank o Auslesen der Attribute mit Datentypen pro Tabelle o Auslesen der Fremdschlüssel etc. pro Tabelle FB Automatisierung und Informatik: Windows Presentation Foundation 4

Datenbanken mit.net Provider erstellen Struktur o Der.net Provider für Firebird und andere DBS kapselt alle Zugriffe auf die Datenbank o Vollständig in C# geschrieben o Funktionen: - Connection - GetSchema - Open - Close - BeginTransaction - ChangeDatabase - CreateCommand - Dispose - State (Status: Open Close) - FbConnection.CreateDatabase - FbConnection.DropDatabase - FbConnection.ClearAllPools - FbConnection.ClearPool FB Automatisierung und Informatik: Windows Presentation Foundation 5

Datenbanken erstellen mit Firebird Voraussetzungen Ablauf o Firebird Server installiert o Firebird Client-Installation o Firebird Embed-Version, einfache DLL o.net Provider für Firebird o ab Visual Studio 2005 o Erstellen eines Projektes o Einbinden des Providers o Erstellen einer DBS-Klasse (Kapselung) o Erstellen einer Query-Klasse (Kapselung) o Aufbau der GUI (DataGridView) o Erstellen einer Verbindung (connection) o SQL-Befehl holen o Query-Abfrage starten o DataTable dem Grid zuweisen FB Automatisierung und Informatik: Windows Presentation Foundation 6

Vergleich Firebird und.net Datentypen Firebird type.net type FbDataReader Example Methode 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.Double GetDouble() DOUBLE PRECISION Reading Example (C#) FLOAT System.Float GetFloat() 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 Automatisierung und Informatik: Windows Presentation Foundation 7

DataGridView DataTable 1 Tabelle Navigator Binding Connection DBS CheckBox Textfield DataSet n Tabelle FB Automatisierung und Informatik: Windows Presentation Foundation 8

FbConnection cnn = new FbConnection(sArg); public DataTable getdbsdata(string ssql) { //FbCommand command = new FbCommand(sSQL, _cnn); FbDataAdapter da = new FbDataAdapter(sSQL, _cnn); DataTable dt = new DataTable("RELATIONS"); da.fill(dt); // füllt die DataTable mit Daten da.fill(dt, von, anzahl, dt); // Big Data return dt; } // hier kann man mehrere Tabellen erhalten, für WPF public DataSet getdbsdataset(string ssql, string stable) { //FbCommand command = new FbCommand(sSQL, _cnn); FbDataAdapter da = new FbDataAdapter(sSQL, _cnn); DataSet ds = new DataSet(); da.fill(ds, stable); // z. B. "Employee", wichtig da es mehrere gibt return ds; } FB Automatisierung und Informatik: Windows Presentation Foundation 9

Abfrage einer SQL-Anweisung: Direkte Zuweisung zum Grid string sfilename = "EMPLOYEE.FDB"; string ssql1 = "select * from EMPLOYEE"; _dbs.setdbs(sfilename); DataSet ds = dbs.getdbsdataset(ssql, "EMPLOYEE"); datagrid1.datacontext = ds; FB Automatisierung und Informatik: Windows Presentation Foundation 10

1. Datenbankbeispiel: DataBase1 FB Automatisierung und Informatik: Windows Presentation Foundation 11

1. Datenbankbeispiel: DataBase1 1. Register o Einfaches DataGrid o Editor für SQL-Befehle o Schalter zum Ausführen o Automatisches DataBinding 2. Register o Einfaches DataGrid o manuelles DataBinding, feste Abfrage 3. Register o Einfaches DataGrid o DataGridComboBoxColumn für die Fachbereiche 4. Register o Einfaches DataGrid o Master-Detail FB Automatisierung und Informatik: Windows Presentation Foundation 12

1. Datenbankbeispiel: DataBase1 Ablauf (1) o Datenbankdesigner o Erstellen des logischen ER-Modell o Erstellen der DDL-Befehle o Erstellen der Datenbank o Aufrufen von FBConsole o Erstellen einer neuen Datenbank o Einfügen der DDL-Befehle (create Table) o Einfügen der DML-Befehle (insert into) FB Automatisierung und Informatik: Windows Presentation Foundation 13

1. Datenbankbeispiel: DatenbankDesigner FB Automatisierung und Informatik: Windows Presentation Foundation 14

Tabelle Student FB Automatisierung und Informatik: Windows Presentation Foundation 15

Tabelle FB FB Automatisierung und Informatik: Windows Presentation Foundation 16

Tabellen: TABLE FB int PINDEX char(5) KURZNAME varchar(50) LANGNAME TABLE STUDENT int MATRNR MATRNR muss größer 0 sein varchar(50) NACHNAME varchar(50) VORNAME int GebJahr GebJahr<1995 Beziehung Student mit FB FB Automatisierung und Informatik: Windows Presentation Foundation 17

Ablauf (2): FBConsole Erstellen der Datenbank; Aufrufen von FBConsole Erstellen einer neuen Datenbank Einfügen der DDL-Befehle (create Table) Einfügen der DML-Befehle (insert into) Datei WPF-DML.txt FB Automatisierung und Informatik: Windows Presentation Foundation 18

Projekt DataBase1 Ablauf (3) o Erstellen des WPF-Projektes: o Homepage, Laden der ZIP-Datei o Verändern des Projektes: o Einfügen der Klasse DBS, siehe Homepage o Einfügen eines Verweises zum Firebird-Provider FB Automatisierung und Informatik: Windows Presentation Foundation 19

Laden des Verweises auf den Provider Ablauf: Projekt-Explorer Verweise Rechte Maustaste Verweis hinzufügen Register Durchsuchen Wechseln ins Debug- Verzeichnis Auswahl der Fireb.dll FB Automatisierung und Informatik: Windows Presentation Foundation 20

Projekt DataBase1 Ablauf (4) o Verändern des Projektes: main.cs o Einfügen einer globalen Variable dbs o In load: o Feste Zuweisung zur Studenten-Datenbank STUDENT- WPF.FDB o grid1.itemssource = dt1.defaultview; o grid1.autogeneratecolumns = true; o grid1.isreadonly = true; o grid1.canuseraddrows = false; o grid1.canuserdeleterows = false; o grid1.canuserresizecolumns = true; o grid1.canusersortcolumns = true; FB Automatisierung und Informatik: Windows Presentation Foundation 21

Projekt DataBase1 Ablauf (5) o bngrid1_sql1_click: o String sql = "Select * from FB"; o grid1.itemssource = dt1.defaultview; o o o bngrid1_sql2_click: o String sql = "Select * from Student"; o grid1.itemssource = dt1.defaultview; bngrid1_sql3_click: o String sql = "select * from student order by Nachname"; o grid1.itemssource = dt1.defaultview; bnsql_click: o Auslesen des Editors o Ausführen des SQL-Befehls o Ausgabe in grid1 FB Automatisierung und Informatik: Windows Presentation Foundation 22

Ablauf (6) o o Manuelles Definieren der Felder im zweiten DataGrid grid2 Jeweils eine DataGrid.Columns o Feld: MATRNR o Width="100" o Header="Matrnr o Feld NACHNAME o Width="100" o Header="Nachname" o Feld VORNAME o Width="100" o Header="Vorname o Feld GEBJAHR o Width= 80" o Header= Geburts-Jahr" o Feld FINDEX o Width="100" o Header="Findex" Binding="{Binding FINDEX}" FB Automatisierung und Informatik: Windows Presentation Foundation 23

Projekt DataBase1 Ablauf (7) o bngrid2_sql1_click: o String sql = "Select * from Student"; o grid1.itemssource = dt1.defaultview; FB Automatisierung und Informatik: Windows Presentation Foundation 24

Projekt DataBase1: 4. Register FB Automatisierung und Informatik: Windows Presentation Foundation 25

Projekt DataBase1 Ablauf (8) o o o Viertes DataGrid grid4a und grid4b Master/Details grid4a o Automatisches Anzeigen der Felder à la grid1 o Es darf nur ein Eintrag ausgewählt werden o Event grid4a_selectionchanged erzeugen o grid4b o Abfragen des SelectedIndex von grid4a o Wenn >=0 dann o Abfrage des SelectedItems von grid4a o KARSTEN o int pindex = (int) 42; o String sql = "Select * from Student where FINDEX=" + pindex; o Abfrage und Eintragen FB Automatisierung und Informatik: Windows Presentation Foundation 26

Projekt DataBase1 Ablauf (9) o o Schalter Insert Student Eintragen eines neuen Studenten o Matrikelnummer: 88888 o Nachname: Garret o Vorname: David o FB Wirtschaftswissenschaften FB Automatisierung und Informatik: Windows Presentation Foundation 27

Datenbank-ComboBox: 3. Register FB Automatisierung und Informatik: Windows Presentation Foundation 28

Projekt DataBase2: DataGrid-Spalten werden automatisch erstellt DataGrid ist readonly Editieren mittels Dialogelemente Update / Insert / Delete mit externen SQL-Befehlen FB Automatisierung und Informatik: Windows Presentation Foundation 29

Projekt DataBase2: FB Automatisierung und Informatik: Windows Presentation Foundation 30

Projekt DataBase2: neuer Student, bearbeiten FB Automatisierung und Informatik: Windows Presentation Foundation 31

Projekt DataBase2: Eintrag löschen FB Automatisierung und Informatik: Windows Presentation Foundation 32

Projekt DataBase2: Editieren private void bnedit_click(object sender, RoutedEventArgs e) { Student std = new Student(); int i = grid1.selectedindex; if (i >= 0) { // DataRowView row Object obj = grid1.selecteditem; Title = obj.tostring(); DataRowView drview = (DataRowView)grid1.SelectedItem; DataRow drow = drview.row; // Matrnr, Vorname, Nachname, gebjahr, findex int matrnr = (int)drow["matrnr"]; std.matrnr = matrnr; std.vorname = (String)dRow["VORNAME"]; std.nachname = (String)dRow["NACHNAME"]; std.gebjahr = (int)drow["gebjahr"]; std.fb_index = (int)drow["findex"]; FB Automatisierung und Informatik: Windows Presentation Foundation 33

Projekt DataBase2: Editieren Student std_ori = new Student(std); FStudent dialog = new FStudent(this, "Bearbeiten eines Studenten", std, true); dialog.showdialog(); if (dialog.retcode) { _dbs.setdbs(konstanten.student_wpf); String sql; if (!std.nachname.equals(std_ori.nachname)) { sql = "UPDATE student SET Nachname="+qt(std.Nachname) +" WHERE Matrnr="+matrnr; DataTable dt1 = _dbs.getdbsdata(sql); } if (!std.vorname.equals(std_ori.vorname)) { sql = "UPDATE student SET Vorname=" + qt(std.vorname) + " WHERE Matrnr=" + matrnr; DataTable dt1 = _dbs.getdbsdata(sql); } FB Automatisierung und Informatik: Windows Presentation Foundation 34

Projekt DataBase2: Editieren if (std.gebjahr!=std_ori.gebjahr) { sql = "UPDATE student SET Gebjahr=" + std.gebjahr + " WHERE Matrnr=" + matrnr; DataTable dt1 = _dbs.getdbsdata(sql); } if (std.fb_index!= std_ori.fb_index) { sql = "UPDATE student SET FIndex=" + std.fb_index + " WHERE Matrnr=" + matrnr; DataTable dt1 = _dbs.getdbsdata(sql); } _dbs.close(); showtable(); } } } // bnedit_click FB Automatisierung und Informatik: Windows Presentation Foundation 35

Weitere Eigenschaften DataAdapter da.fill(dt); // füllt die DataTable mit Daten da.fill(dt, von, anzahl, dt); // für große Daten FB Automatisierung und Informatik: Windows Presentation Foundation 36

SqlBulkCopy: Massenkopieren SqlConnectionStringBuilder cb = new SqlConnectionStringBuilder(); cb.datasource = "Produktion"; cb.initialcatalog = "Verkauf"; cb.integratedsecurity = true; SqlConnection cnn = new SqlConnection(cb.ConnectionString); SqlCommand cmd = new SqlCommand("SELECT * FROM Rechnungen",cnn); cnn.open(); SqlDataReader rdr = cmd.executereader(); SqlBulkCopy sbc = new SqlBulkCopy("server=.;database=PTest;" +<BR> "Integrated Security=SSPI"); sbc.destinationtablename = "Temp"; sbc.writetoserver(rdr); sbc.close(); rdr.close(); cnn.close(); FB Automatisierung und Informatik: Windows Presentation Foundation 37