VB.NET Nutzung von ADO.NET

Größe: px
Ab Seite anzeigen:

Download "VB.NET Nutzung von ADO.NET"

Transkript

1 VB.NET Nutzung von ADO.NET

2 ADO.NET bietet einen Zugriff auf relationale Datenbanken. ist eine Programmierschnittstelle für den Zugriff auf Daten. ist Bestandteil des.net Frameworks ActiveX Data Objects.NET im Web: library/e80y5yhx.aspx VB.NET und Datenbanken, Seite 2

3 OleDB-Verbindung herstellen Imports System.Data.OleDb Public Class frmalladressshow Private Sub frmalladressshow_load(byval sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim dbconnect As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=..\datenbank\kundenAdresse.accdb") dbconnect.open() dbconnect.close() End Sub End Class VB.NET und Datenbanken, Seite 3

4 Namespace importieren Imports System.Data.OleDb Mit Hilfe von Imports wird ein Namespace (Namensraum) dem Programm bekannt gemacht. Die Imports-Anweisung steht immer Anfang des Programmcodes steht außerhalb der Klassen-Definition. VB.NET und Datenbanken, Seite 4

5 Namespace Imports System.Data.OleDb gruppieren verschiedene Bibliothekselemente. unterteilen große Mengen von Klassen in logische Gruppen. Einzelne Namen von Klassen etc. können in verschiedenen Gruppen vorkommen. sind hierarchisch gegliedert. Jede Ebene der Hierarchie wird von der nächsten Ebene durch ein Punkt getrennt. VB.NET und Datenbanken, Seite 5

6 Beispiel Imports System.Data.OleDb In diesem Beispiel wird die Gruppe System, die die Basisklassen für die Datentypen etc. definiert. System.Data, die Klassen zum Arbeiten mit Daten außerhalb des Projekts enthält. System.Data.OleDb bietet Klassen zum Arbeiten mit OLE- Datenbanken. O(bject)L(inking)E(mbedding) bietet die Möglichkeit auf Datenquellen in Tabellenform zuzugreifen. VB.NET und Datenbanken, Seite 6

7 Objektvariablen Dim dbconnect As New OleDbConnection() Dim dbconnect As New System.Data.OleDb.OleDbConnection() Mit Hilfe des Schlüsselwortes Dim wird eine Variable definiert. Der Name der Variablen ist frei wählbar. As weist der Variablen ein Objekttyp zu. New erstellt eine Instanz von einer Klasse. Eine Instanz beschreibt das konkrete Objekt. VB.NET und Datenbanken, Seite 7

8 Angabe des Bauplans Dim dbconnect As New OleDbConnection() Dim dbconnect As New System.Data.OleDb.OleDbConnection() Jede Klasse, auf die ein Objekt beruht, ist in einem bestimmten Namensraum eindeutig definiert. Der Namensraum kann am Anfang des Programms mit Hilfe der Imports- Anweisung eingebunden werden. direkt angegeben werden. VB.NET und Datenbanken, Seite 8

9 Mögliche Baupläne für eine Datenverbindung Dim connect As New System.Data.OleDb.OleDbConnection() Dim connect As New System.Data.SqlClient.OleDbConnection() SQLConnection sind spezielle Klassen für Verbindungen zu Microsoft SQL Server 7.0 und höher. OLEDBConnection stellen Verbindungen zu allen Quellen her, die mit einem Projekt verlinkt oder in ein Projekt eingebettet werden können. VB.NET und Datenbanken, Seite 9

10 Konstruktoren Dim dbconnect As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=..\kundenAdresse.accdb") sind Prozeduren zum Initialisieren von Instanzen. stellen für einen Bauplan die Randbedingungen zur Verfügung. werden mit Hilfe des Schlüsselwortes New aufgerufen. bekommen eine Liste von Parametern in runden Klammern übergeben. In diesem Beispiel wird eine Verbindungszeichenfolge übergeben. VB.NET und Datenbanken, Seite 10

11 Verbindungszeichenfolge Dim dbconnect As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=..\kundenAdresse.accdb") wird durch Anführungszeichen begrenzt. besteht aus verschiedenen Attributen. Die Anzahl und Art der Attribute ist von dem gewählten Verbindungstyp abhängig. Mit Hilfe des Gleichheitszeichen werden den Attributen in der Zeichenfolge Werte zugewiesen. VB.NET und Datenbanken, Seite 11

12 OLEDB-Verbindungszeichenfolge Dim dbconnect As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=..\kundenAdresse.accdb") Dem Attribut Data Source wird der Speicherort der Datenbank übergeben. Die Datenquelle kann eine beliebige Struktur sowie Speicherort besitzen. Provider legt die Art der Datenquelle sowie deren Verbindung fest. In diesem Beispiel wird eine Verbindung zu einer Access- Datenbank aufgebaut. VB.NET und Datenbanken, Seite 12

13 Provider für relationale Datenbanken Microsoft.ACE.OLEDB.12.0 kann zum Beispiel eine Verbindung zu einer Access 2007-Datenbank aufbauen. Microsoft.Jet.OLEDB.4.0 kann zum Beispiel eine Verbindung zu einer Access 2003-Datenbank aufbauen. Weitere Provider finden Sie unter VB.NET und Datenbanken, Seite 13

14 Passwort und Benutzername können in den Attributen Password und User ID gespeichert werden. sollten aber nie fest in ein Connection-String geschrieben werden. sollten über ein Dialogfeld abgefragt werden. für eine Datenbank entsprechen häufig der Windows- Identifikation am Rechner. VB.NET und Datenbanken, Seite 14

15 Verbindung öffnen und schließen dbconnect.open() dbconnect.close() Mit Hilfe der Methode.Open() wird eine Verbindung geöffnet. Eine geöffnete Verbindung kann nicht erneut geöffnet werden! Mit Hilfe der Methode.Close() wird eine offene Verbindung geschlossen. Die Eigenschaft.State hat folgende Attributwerte: ConnectionState.Open. Die Datenbank ist geöffnet. ConnectionState.Closed. Die Datenbank ist geschlossen. VB.NET und Datenbanken, Seite 15

16 Fehler (Bugs) Syntaxfehler entstehen beim Schreiben des Programmcodes. Logische Fehler treten auf, wenn der Entwickler ein Denkfehler bei der Umsetzung der Aufgabe in ein Programm macht. Das Programm wird fehlerfrei ausgeführt, aber das Ergebnis ist nicht korrekt. Laufzeitfehler treten während der Ausführung des Programms auf. Zum Beispiel eine CD, von der Daten gelesen werden sollen, befindet sich nicht im Laufwerk. VB.NET und Datenbanken, Seite 16

17 Syntaxfehler Die Syntax einer Programmiersprache ist die Gesamtheit der Regeln für die Bildung von Anweisungen aus Operatoren und Operanden sowie die Nutzung von Funktionen.... verhindern die Kompilierung eines Programms.... sind zum Beispiel: Tippfehler bei der Eingabe von Variablennamen oder Schlüsselwörtern. Mischung von numerischen und nicht-numerischen Operatoren. Falsche Parameterübergabe an Funktionen. Syntaxfehler in Schleifen oder bedingten Anweisungen. VB.NET und Datenbanken, Seite 17

18 anzeigen Im Codefenster werden Syntaxfehler durch eine farbige Schlange angezeigt. Durch Überfahren des Fehlers mit der Maus wird ein ToolTip, welches eine Fehlerbeschreibung anzeigt, sowie ein Ausrufezeichen im roten Kreuz, welches Hilfen zur Fehlerkorrektor anbietet, eingeblendet. VB.NET und Datenbanken, Seite 18

19 Fehlerliste Ansicht Fehlerliste blendet ein zusätzliches Fenster ein. Pro Zeile wird ein Fehler angezeigt. Die Zeile zeigt spaltenweise folgende Informationen an: Was für ein Fehler ist aufgetreten? In welcher Datei? In welcher Zeile? VB.NET und Datenbanken, Seite 19

20 vermeiden Öffnen Sie das Menü Extras Optionen. Aktivieren Sie das Kontrollkästchen Alle Einstellungen anzeigen. Öffnen Sie den Ordner Projekte und Projektmappen und den Unterordner VB-Standard. Stellen Sie für die Elemente Option Explicit und Option Strict den Wert On ein. Option Explicit erzwingt eine Variablendeklaration. Option Strict verhindert eine Datentyp-Konvertierung mit Datenverlusten. Wechseln Sie in den Ordner Text-Editor Basic VB - spezifisch. Aktivieren Sie das Kästchen Vorschläge für Fehlerkorrektur aktivieren. VB.NET und Datenbanken, Seite 20

21 Laufzeitfehler... sind Bugs, die nach dem Start eines Programms auftreten können.... betreffen immer die Programmlogik.... können Programme zu einem unerwünschten Verhalten oder einen Programmabsturz zwingen.... entstehen, wenn Ausdrücke oder Anweisungen von dem Programm nicht korrekt ausgewertet werden. Beispiele: Division durch Null. Überlauf (zu großer oder zu kleiner Wert für den angegebenen Datentyp). Ein- und Ausgabefehler. VB.NET und Datenbanken, Seite 21

22 Laufzeitfehler abfangen Imports System.Data.OleDb... Dim dbconnect As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=..\kundenAdresse.accdb") Try dbconnect.open() Catch ex As Exception MessageBox.Show(ex.Message, "Fehler") Finally dbconnect.close() End Try VB.NET und Datenbanken, Seite 22

23 Arbeitsablauf: Keine Fehler vorhanden Try dbconnect.open() End Try Es werden alle Anweisungen, die dem Schlüsselwort Try folgen ausgeführt. Wenn kein Fehler auftritt, wird in diesem Beispiel die Verbindung zur Datenquelle geöffnet. VB.NET und Datenbanken, Seite 23

24 Arbeitsablauf: Fehler vorhanden Try dbconnect.open() Catch ex As Exception MessageBox.Show(ex.Message, "Fehler") End Try Falls ein Fehler aufgetreten ist, wird eine Exception (Ausnahme) ausgelöst. Die Exception wird mit Hilfe des Schlüsselwortes Catch abgefangen. VB.NET und Datenbanken, Seite 24

25 Welcher Fehler wird abgefangen? Try dbconnect.open() Catch ex As Exception MessageBox.Show(ex.Message, "Fehler") End Try Dem Schlüsselwort Catch folgt eine Definition einer Variablen vom Typ Exception (Ausname) Diese Variable hat die Eigenschaft Message, die den Fehlertext enthält. Mit Hilfe von MessageBox.Show kann dieser Fehlertext in einem Dialogfenster angezeigt werden. VB.NET und Datenbanken, Seite 25

26 Arbeitsablauf: Aufräumen Try dbconnect.open() Catch ex As Exception MessageBox.Show(ex.Message, "Fehler") Finally dbconnect.close() End Try Alle Anweisungen, die dem Schlüsselwort Finally folgen, werden immer ausgeführt. Das heißt, die Verbindung wird in diesem Beispiel auch geschlossen, wenn ein Fehler aufgetreten ist. VB.NET und Datenbanken, Seite 26

27 SQL-Anweisungen im Code Dim sqltext As String = "" Dim dbconnect As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=..\datenbank\kundenAdresse.accdb") Dim dbcommand As OleDbCommand Dim dbreader As OleDbDataReader sqltext = "SELECT Firma, Anrede, Ansprechpartner, Strasse, PLZ, Ort FROM tblkunde;" Try End Try dbconnect.open() dbcommand = New OleDbCommand(sqlText, dbconnect) VB.NET und Datenbanken, Seite 27

28 Arbeitsablauf Zuerst wird eine Verbindung zu einer Datenbank erstellt. Es wird eine Variable vom Typ OleDBConnection oder SqlConnection benötigt. Mit Hilfe der Methode Open wird die Verbindung geöffnet. An diese geöffnete Verbindung wird eine SQL-Anweisung gesendet. Es wird ein Command-Objekt deklariert. Diesem Objekt wird eine SQL-Anweisung und die Art der Verbindung übergeben. VB.NET und Datenbanken, Seite 28

29 Command-Objekt wird benötigt, um Daten aus einer Datenbank auszulesen oder zu verändern. stellt eine SQL-Anweisung dar. benötigt eine offene Verbindung zu einer Datenbank. Jede offene Verbindung kann zu einer bestimmten Zeit nur genau ein Command-Objekt verarbeiten. VB.NET und Datenbanken, Seite 29

30 Arbeitsablauf Das Command-Objekt wird deklariert. Im nächsten Schritt wird das Command-Objekt mit einer Sql- Anweisung initialisiert. Die Anweisung wird mit Hilfe der angegebenen, geöffneten Verbindung ausgeführt. Das Command-Objekt kann ein Ergebnis zurückliefern. Über die Verbindung wird das Ergebnis der SQL-Anweisung zurückgeliefert. Dieses Ergebnis kann als Datenquelle in einem Projekt genutzt werden. VB.NET und Datenbanken, Seite 30

31 Variable für ein Command-Objekt deklarieren Dim dbcommand As OleDbCommand = Nothing Eine Variable vom Typ des Command-Objekts wird deklariert. Die Variable wird mit Nothing (Nichts) initialisiert. Sie verweist auf kein Objekt. VB.NET und Datenbanken, Seite 31

32 Command-Objekt initialisieren Dim dbcommand As OleDbCommand = Nothing sqltext = "SELECT Firma, Anrede, Ansprechpartner, Strasse, PLZ, Ort FROM tblkunde;" dbcommand = New OleDbCommand(sqlText, dbconnect) Ein Objekt wird mit New erstellt. In diesem Beispiel wird ein Objekt OleDbCommand neu erstellt. In runden Klammern wird dem Objekt als Startwert die auszuführende SQL-Anweisung sowie die Verbindung zu der Datenbank übergeben. VB.NET und Datenbanken, Seite 32

33 Geänderte Datensätze in einem DataSet Dim datarow As DataRow Dim datatable As DataTable datatable = Me.KundenAdresseDataSet.Tables("tblKunde").GetChanges For Each datarow In datatable.rows sqltext = "UPDATE tblkunde SET" sqltext = sqltext & ", PLZ = '" & datarow.item(5).tostring & "'" sqltext = sqltext & " WHERE IDKunde = " & datarow.item(0).tostring Next datarow VB.NET und Datenbanken, Seite 33

34 Auflistung der geänderten Datensätze Dim datatable As DataTable datatable = Me.KundenAdresseDataSet.Tables("tblKunde").GetChanges Me beschreibt die Form, an der der Code hängt. Diese Form kann auf ein DataSet zugreifen. Jedes DateSet eine Auflistung von Tabellen (Tables). Auflistungen enden immer mit einem s. Jede Tabelle hat eine Auflistung der geänderten Datensätze (GetChanges). VB.NET und Datenbanken, Seite 34

35 Auflistung (Collection)... ist ein Behältniss für eine Sammlung von Objekten mit bestimmten Eigenschaften.... ist ein dynamisches Felder von einer bestimmten Objektart.... ist eine Liste aller Elemente einer Objektart. Die Bezeichnung einer Auflistung endet immer mit s.... hat genauso wie Objekte Eigenschaften und Methoden. Zum Beispiel die Eigenschaft Count gibt die Anzahl der Elemente in einer Auflistung zurück. VB.NET und Datenbanken, Seite 35

36 Zellen in einer Zeile For Each datarow In datatable.rows sqltext = sqltext & ", PLZ = '" & datarow.item(5).tostring & "'" Next datarow Jede Datentabelle hat eine Auflistung der Zeilen / Datensätze (Rows). Jede Zeile hat Elemente (Item), die die Zellen bezeichnen. Eine Zelle wird mit Hilfe eines Indizes bestimmt. Die erste Zelle hat den Index 0. In diesem Beispiel wird der Inhalt der sechsten Zelle in der angegebenen Zeile in ein String konvertiert. VB.NET und Datenbanken, Seite 36

37 Index von Feldern (Arrays)... sind nullbasiert. Das erste Element in der Auflistung hat den Index null. Der Index der Elemente einer Auflistung verändert sich in Abhängigkeit der Anzahl der Elemente. Der Index ist nicht an ein bestimmtes Element gekoppelt. VB.NET und Datenbanken, Seite 37

38 Zellen in einer Zeile For Each datarow In datatable.rows Next datarow Eine Auflistung kann mit Hilfe der For Each-Schleife durchlaufen werden. Dem Schlüsselwort For Each folgt eine Variable, die ein Element in der Auflistung symbolisiert. Dem Schlüsselwort In folgt der Name der Auflistung. In diesem Beispiel werden die Zeilen einer Tabelle durchlaufen. Next springt zu dem nächsten Element. In diesem Beispiel die nächste Zeile in der Auflistung. VB.NET und Datenbanken, Seite 38

39 Datensätze in der Datenbank ändern Dim sqltext As String = "UPDATE..." Dim dbconnect As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=..\datenbank\kundenAdresse.accdb") Dim dbcommand As New OleDbCommand dbconnect.open() dbcommand.connection = dbconnect dbcommand.commandtext = sqltext dbcommand.executenonquery() dbconnect.close() VB.NET und Datenbanken, Seite 39

40 SQL-Anweisung UPDATE sqltext = "UPDATE tblkunde SET" sqltext = sqltext & ", PLZ = '" & datarow.item(5).tostring & "'" sqltext = sqltext & " WHERE IDKunde = " & datarow.item(0).tostring Die Aktualisierungsabfrage wird mit UPDATE eingeleitet. Im Anschluss daran wird die Tabelle aufgeführt, deren Daten geändert werden sollen. Es können immer nur die Daten in einer Tabelle geändert werden. Dem Befehl SET folgt die Berechnung der neuen Daten. Die Anzahl der zu ändernden Datensätze kann mit WHERE eingeschränkt werden. VB.NET und Datenbanken, Seite 40

41 Eigenschaften des Command-Objekts dbcommand.connection = dbconnect dbcommand.commandtext = sqltext Die Eigenschaft Connection beschreibt immer die Verbindung zu der Datenbank eines Command-Objekts. CommandText enthält die auszuführende SQL-Anweisung. VB.NET und Datenbanken, Seite 41

42 SQL-Anweisung ausführen dbcommand.executenonquery() Die Methode,ExecuteNonQuery() gibt keine Daten zurück. Es wird nur eine SQL-Anweisung zur Datenbank gefeuert. Als Rückgabewert werden die Anzahl der geänderten Datensätze zurückgeliefert. Der Rückgabewert muss nicht ausgewertet werden. wird häufig für UPDATE, INSERT oder DELETE genutzt. VB.NET und Datenbanken, Seite 42

43 Neue Datensätze in der Datenbank einfügen Dim sqltext As String = "" Dim dbconnect As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=..\datenbank\kundenAdresse.accdb") Dim dbcommand As OleDbCommand sqltext = "INSERT INTO tblkunde (Firma)" sqltext = sqltext & " VALUES (" sqltext = sqltext & "'" & txtfirma.text & ")" dbconnect.open() dbcommand = New OleDbCommand(sqlText, dbconnect) dbcommand.executenonquery() VB.NET und Datenbanken, Seite 43

44 SQL-Anweisung INSERT INTO INSERT INTO autor ( vorname, nachname ) SELECT newautor.vorname, newautor.nachname FROM newautor sqltext = "INSERT INTO tblkunde (Firma)" sqltext = sqltext & " VALUES (" sqltext = sqltext & "'" & txtfirma.text & ")" VB.NET und Datenbanken, Seite 44

45 Wo werden die Daten eingefügt? INSERT INTO autor ( vorname, nachname )... Eine Anfüge-Abfrage beginnt mit INSERT INTO. Dem SQL-Befehl folgt ein Tabellenname. In diese Tabelle werden die Daten eingefügt. In den runden Klammern folgt der Tabelle eine Liste von Feldern. In diese Felder werden die Daten von links beginnend eingefügt. VB.NET und Datenbanken, Seite 45

46 Welche Daten werden eingefügt? INSERT INTO autor ( vorname, nachname ) SELECT newautor.vorname, newautor.nachname FROM newautor INSERT INTO autor ( vorname, nachname ) VALUES ("Tim", "Regen") Die anzufügenden Daten werden mit Hilfe einer SELECT-Anweisung ausgewählt. einer Wertliste (VALUES) bestimmt. Die neuen Werte werden den Feldern in der Zieltabelle immer von links nach rechts zugeordnet. VB.NET und Datenbanken, Seite 46

47 Selektierte Datensätze in einem DataGridView... Dim selectedrow As DataGridViewRow Dim lstidkunde As String lstidkunde = "" For Each selectedrow In Me.ShowKundeAdresse.SelectedRows If lstidkunde <> "" Then lstidkunde = lstidkunde & ", " End If lstidkunde = selectedrow.cells.item(0).value.tostring Me.ShowKundeAdresse.Rows.Remove(selectedRow) Next selectedrow VB.NET und Datenbanken, Seite 47

48 Selektierte Datensätze Dim selectedrow As DataGridViewRow For Each selectedrow In Me.ShowKundeAdresse.SelectedRows werden in der Auflistung SelectedRows gesammelt. sind vom Datentyp DataGridViewRow und nicht DataRow. VB.NET und Datenbanken, Seite 48

49 Werte einer Zelle in einer selektierten Zeile lstidkunde = selectedrow.cells.item(0).value.tostring Die Auflistung Cells enthält alle Zellen einer Zeile. Item(0) verweist auf die erste Zelle in der angegebenen Zeile. Innerhalb der runden Klammern wird ein Index angegeben. Der Index beginnt mit 0. Die Eigenschaft Value enthält den Wert der Zelle. VB.NET und Datenbanken, Seite 49

50 Selektierte Datensätze löschen Me.ShowKundeAdresse.Rows.Remove(selectedRow) Die Methode.Remove() wird ein Verweis auf eine bestimmte Zeile in runden Klammern übergeben. In diesem Beispiel wird die ausgewählte Zeile übergeben und anschließend gelöscht. VB.NET und Datenbanken, Seite 50

51 Datensätze in einer Datenbank löschen Dim sqltext As String = "" Dim dbconnect As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=..\datenbank\kundenAdresse.accdb") Dim dbcommand As OleDbCommand sqltext = "DELETE FROM tblkunde sqltext = sqltext & WHERE IDKUNDE IN(" & lstidkunde & ")" dbconnect.open() dbcommand = New OleDbCommand(sqlText, dbconnect) dbcommand.executenonquery() VB.NET und Datenbanken, Seite 51

52 SQL-Anweisung DELETE sqltext = "DELETE FROM tblkunde sqltext = sqltext & WHERE IDKUNDE IN(" & lstidkunde & ")" Das Schlüsselwort DELETE leitet eine Löschabfrage ein. Eine Löschabfrage wird immer über eine Tabelle gestellt. FROM tblkunde gibt Auskunft darüber, in welcher Tabelle die Datensätze gelöscht werden sollen. Mit Hilfe von WHERE wird eine Bedingung zur Auswahl der Datensätze angegeben. Die Anzahl der zu löschenden Datensätze wird eingeschränkt. VB.NET und Datenbanken, Seite 52

53 Cursor auf die Daten erzeugen Dim sqltext As String = "" Dim dbconnect As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=..\datenbank\kundenAdresse.accdb") Dim dbcommand As OleDbCommand Dim dbreader As OleDbDataReader sqltext = "SELECT Firma, Anrede, Ansprechpartner, Strasse, PLZ, Ort FROM tblkunde;" Try End Try dbconnect.open() dbcommand = New OleDbCommand(sqlText, dbconnect) dbreader = dbcommand.executereader() VB.NET und Datenbanken, Seite 53

54 Erläuterung Dim dbreader As OleDbDataReader dbreader = dbcommand.executereader() Eine Variable vom Typ des DataReaders-Objekts wird deklariert. Der DataReader wird über die Methode.ExecuteReader() erzeugt. Der DataReader ist ein Cursor auf die zu lesenden Daten. Die zu lesende Daten sind mit Hilfe des Command-Objekts festgelegt. VB.NET und Datenbanken, Seite 54

55 DataReader ist ein Cursor auf Daten in einer Datenquelle. kann nur lesend auf die Daten zugreifen. ist ein vorwärtsgerichteter Cursor. kann nur Seite für Seite umblättern, aber nicht zurückblättern. benötigt eine geöffnete Verbindung. VB.NET und Datenbanken, Seite 55

56 Grafische Darstellung DataReader Command Connection Datenquelle VB.NET und Datenbanken, Seite 56

57 Arbeitsablauf Eine Verbindung wird geöffnet. Ein Command-Objekt wird erzeugt. Das Command wird mit Hilfe der ExecuteReader-Methode ausgeführt. Ein DataReader wird durch die Methode erzeugt. Das Ergebnis wird in einer temporären Tabelle in einer Datenbank gespeichert. Der DataReader setzt ein Lese-Cursor vor den ersten Datensatz. Es werden die Spalteninhalte bereitgestellt. Das VB-Programm liest die Daten und speichert diese in einem lokalen Speicher oder verarbeitet die Daten direkt. VB.NET und Datenbanken, Seite 57

58 Daten aus der Datenquelle lesen Try dbreader = dbcommand.executereader() Do While dbreader.read() If strausgabe = "" Then strausgabe = dbreader("firma").tostring Else strausgabe = strausgabe & ControlChars.NewLine & dbreader.getstring(0) End If Loop End Try VB.NET und Datenbanken, Seite 58

59 Erläuterung Dim dbreader As OleDbDataReader dbreader = dbcommand.executereader() Do While dbreader.read()... Loop Mit Hilfe der Methode.Read() liest der Cursor jeweils ein Datensatz (eine Zeile) ein. wird der Cursor auf den nächsten Datensatz gesetzt. Wenn das Ende (EOF) der Tabelle erreicht ist, wird der Wert False zurückgeliefert. VB.NET und Datenbanken, Seite 59

60 Anweisungen wiederholen Do While dbreader.read()... Loop Do While Loop ist eine Schleife. Die Schleife wiederholt die Anweisungen zwischen Do While und Loop beliebig oft. Die Schleife wird in Abhängigkeit einer Bedingung durchlaufen. Die Bedingung folgt dem Schlüsselwort Do While. Eine Do While - Loop-Schleife läuft solange wie die Bedingung erfüllt ist. Sobald die Bedingung nicht erfüllt ist, wird die Schleife abgebrochen. VB.NET und Datenbanken, Seite 60

61 Untypisierte Daten aus den Spalten lesen strausgabe = dbreader("firma").tostring dbreader("firma").tostring liest die Daten aus der Spalte Firma. haben keinen definierten Datentyp. NULL-Werte des Feldes verursachen keinen Fehler. Die Daten werden mit Hilfe der Methode.ToString in eine Zeichenkette umgewandelt werden. VB.NET und Datenbanken, Seite 61

62 Weitere Möglichkeit strausgabe = dbreader("firma").tostring strausgabe = dbreader.item("firma").tostring dbreader.item(0) oder dbreader.item("firma") liest eine Spalte ohne Konvertierung aus der Quelle aus. Der Spalteninhalt hat den gleichen Datentyp für die Quelle sowie auch im Programm. NULL-Werte der Felder werden ausgelesen. In diesem Beispiel wird der Inhalt anschließend in einem String konvertiert. Die Spalte wird mit Hilfe eines Indizies bestimmt. Als Index kann eine Ganzzahl oder der Feldname der Spalte genutzt werden. VB.NET und Datenbanken, Seite 62

63 Ganzzahl oder Spaltenname als Index? Der Zugriff mit Hilfe einer Ganzzahl ist schneller. Aber: Die Ganzzahl ist nicht an eine Spalte gebunden. Zum Beispiel bezeichnet die Ganzzahl 2 die Spalte Strasse. Vor dieser Spalte wird eine neue Spalte Unternehmensform eingefügt. Die Ganzzahl 2 bezeichnet jetzt die Spalte Unternehmensform und nicht mehr die Spalte Strasse. Spaltennamen sind für den Programmierer besser lesbar. VB.NET und Datenbanken, Seite 63

64 Typisierte Daten aus den Spalten lesen strausgabe = dbreader("firma").tostring strausgabe = dbreader.item("firma").tostring strausgabe = strausgabe & ControlChars.NewLine & dbreader.getstring(0) dbreader.getstring(0) liest eine Spalte vom Datentyp String aus. Null-Werte erzeugen einen Fehler. Get...() gibt es für jeden Datentyp einer Datenbank. Die zu lesende Spalte wird mit Hilfe ihres Indizes angesprochen. Die erste Spalte hat den Index 0. Mit Hilfe der Methode.GetOrdinal("Firma") kann der Index einer Spalte ermittelt werden. VB.NET und Datenbanken, Seite 64

65 Texte verknüpfen strausgabe = dbreader("firma").tostring strausgabe = strausgabe & ControlChars.NewLine & dbreader.getstring(0) Mit Hilfe des kaufmännischen Unds werden verschiedene Texte aneinandergereiht. ControlChars definiert Sonderzeichen wie eine neue Zeile (ControlChars.NewLine), Tabulator etc. VB.NET und Datenbanken, Seite 65

66 Sind Datensätze vorhanden? Try... dbreader = dbcommand.executereader() If dbreader.hasrows Then Do While dbreader.read()... Loop End Try Mit Hilfe der Methode.HasRows kann abgefragt werden, ob Datensätze vorhanden sind oder nicht. VB.NET und Datenbanken, Seite 66

67 DataReader schließen dbreader.close() Der Cursor wird nach dem Lesen aller Datensätze geschlossen. Eine geöffneter DataReader blockiert die Verbindung. Die genutzte Verbindung kann nicht von anderen Command- Objekten verwendet werden. VB.NET und Datenbanken, Seite 67

68 DataAdapter füllt immer Tabellen in Abhängigkeit einer SELECT- Anweisung. sollte für jede benötigte Tabelle angelegt werden, muss aber nicht. Daten werden von einer Datenbank in eine Tabelle geladen. Datenänderungen werden zurücgespeichert. VB.NET und Datenbanken, Seite 68

69 Grafische Darstellung Lokale Datenspeicher Dataset Tabelle 1 Tabelle 2 Tabelle 1 Datenadapter Datenbank VB.NET und Datenbanken, Seite 69

70 Voraussetzung für die Nutzung Eine Verbindung (Connection-Objekt) existiert. Die Verbindung muss aber nicht geöffnet sein. Ein DataSet-Objekt oder ein DataTable-Objekt ist vorhanden. Eine SQL-Anweisung muss erstellt werden. Ein DataAdapter muss erzeugt werden. VB.NET und Datenbanken, Seite 70

71 Daten lesen Eine geschlossene Verbindung zu einer Datenquelle wird automatisch vom DataAdapter geöffnet. Anschließend wird die SELECT-Anweisung vom DataAdapter ausgeführt. Die Ergebnismenge der Anweisung wird erzeugt. Der DataAdapter nutzt ein DataReader-Objekt, um die Ergebnismenge auszulesen. Der DataAdapter schreibt die gelesenen Daten in das DataSet oder DataTable. VB.NET und Datenbanken, Seite 71

72 DataAdapter erzeugen Dim dakunde As OleDbDataAdapter sqltext = "SELECT * FROM tblkunde" dbconnect.open() dakunde = New OleDbDataAdapter(sqlText, dbconnect) Dem Konstruktor wird eine SQL-Anweisung zur Auswahl der Daten übergeben. eine offene Verbindung übergeben. VB.NET und Datenbanken, Seite 72

73 UpdateCommand sqltext = "UPDATE tblkunde SET Firma =?, Anrede =?, Ansprechpartner =?, " sqltext = sqltext & "Straße =?, PLZ =?, Ort =? WHERE IDKunde =?" dataadapter.updatecommand = New OleDbCommand(sqlText, dbconnect) speichert Änderungen in der Datenquelle. Die Fragezeichen in der UPDATE-Anweisung werden durch die entsprechenden Parameter ersetzt. VB.NET und Datenbanken, Seite 73

74 Parameter zum UpdateCommand Dim parameter As OleDbParameter With dataadapter.updatecommand.parameters.add("firma", OleDbType.VarChar, 255, "Firma").Add("Anrede", OleDbType.VarChar, 10, "Anrede").Add("Ansprechpartner", OleDbType.VarChar, 255, "Ansprechpartner").Add("Straße", OleDbType.VarChar, 255, "Straße").Add("PLZ", OleDbType.VarChar, 5, "PLZ").Add("Ort", OleDbType.VarChar, 255, "Ort") parameter = New OleDbParameter("IDKundeOld", OleDbType.UnsignedBigInt, 30000, "IDKunde") parameter.sourceversion = DataRowVersion.Original.Add(parameter) End With VB.NET und Datenbanken, Seite 74

75 Erläuterung: Add-Methode In der Auflistung Parameters werden alle Parameter der Sql- Anweisung gesammelt. Mit Hilfe der Methode.Add() werden Parameter angefügt, die die aktuell, geänderten Werte der entsprechenden Spalten symbolisieren. Der Methode.Add() wird der Name des Parameters, der Datentyp, die Größe und der Name der dazugehörigen Spalte übergeben. VB.NET und Datenbanken, Seite 75

76 Erläuterung: Primärschlüssel parameter = New OleDbParameter("IDKundeOld", OleDbType.UnsignedBigInt, 30000, "IDKunde") Parameter, die den Primärschlüssel betreffen, werden mit Hilfe des Konstuktors des Objekts OleDbParameter erzeugt und anschließend der Auflistung hinzugefügt. Der Parameter wird benötigt, um einen Datensatz eindeutig zu identifizieren. Dem Konstruktor werden der Name des Parameters, der Datentyp, die Größe und der Name der dazugehörigen Spalte übergeben. Der Parameter und der Feldname müssen unterschiedliche Bezeichnungen haben. VB.NET und Datenbanken, Seite 76

77 Erläuterung: Primärschlüssel parameter = New OleDbParameter("IDKundeOld", parameter.sourceversion = DataRowVersion.Original OleDbType.UnsignedBigInt, 30000, "IDKunde") Die Eigenschaft SourceVersion gibt Auskunft darüber, ob die aktuelle Zeile oder eine andere mit Hilfe der Anweisung aktualisiert wird. Standardmäßig wird immer die aktuelle Zeile aktualisiert. Mit Hilfe von DataRowVersion.Original wird die Zeile aus der Originalquelle aktualisiert. VB.NET und Datenbanken, Seite 77

78 InsertCommand sqltext = "INSERT INTO tblkunde (Firma, Anrede, Ansprechpartner, " sqltext = sqltext & "Straße, PLZ, Ort) VALUES(?,?,?,?,?,?)" dataadapter.insertcommand = New OleDbCommand(sqlText, dbconnect) With dataadapter.insertcommand.parameters.add("firma", OleDbType.VarChar, 255, "Firma").Add("Anrede", OleDbType.VarChar, 10, "Anrede").Add("Ansprechpartner", OleDbType.VarChar, 255, "Ansprechpartner").Add("Straße", OleDbType.VarChar, 255, "Straße").Add("PLZ", OleDbType.VarChar, 5, "PLZ").Add("Ort", OleDbType.VarChar, 255, "Ort") End With VB.NET und Datenbanken, Seite 78

79 DeleteCommand sqltext = "DELETE FROM tblkunde WHERE IDKunde =?" dataadapter.deletecommand = New OleDbCommand(sqlText, dbconnect) parameter = New OleDbParameter("IDKundeOld", OleDbType.UnsignedBigInt, 30000, "IDKunde") parameter.sourceversion = DataRowVersion.Original dataadapter.deletecommand.parameters.add(parameter) VB.NET und Datenbanken, Seite 79

80 DataTable löschen und füllen Private datatable As New DataTable() datatable.clear() dataadapter.fill(datatable) listkunde.datasource = datatable Mit Hilfe der Methode.Clear() wird der Inhalt der Datentabelle gelöscht. Die Methode.Fill() lädt die Daten aus der Datenbank in die angegebene Tabelle (datatable). Die Methode löscht nicht den Inhalt der Tabelle! Diese Tabelle kann wiederum als Datenquelle für ein DataGridView dienen. VB.NET und Datenbanken, Seite 80

81 Änderungen zurückschreiben Try dataadapter.update(datatable) MsgBox("Die Daten wurden in der Datenquelle gespeicher!") Catch ex As Exception MessageBox.Show(ex.Message, "Fehler") End Try Die Methode.Update() aktualisiert die Daten aus der Datenquelle mit den Daten aus der, in den runden Klammern angegebenen, Tabelle. Für jeden geänderten Datensatz werden die entsprechenden SQL-Anweisungen ausgeführt. Wenn zum Beispiel ein Datensatz gelöscht wurde, wird DeleteCommand ausgeführt. VB.NET und Datenbanken, Seite 81

82 Gültigkeitsprüfung für den Primärschlüssel dataadapter.missingschemaaction = MissingSchemaAction.AddWithKey In diesem Beispiel werden Einschränkungen ( NULL ist erlaubt, Maximale Länge ) für den Primärschlüssel aus der Datenquelle übernommen. Nicht existierende Spalten werden zu einer DataTable hinzugefügt. Andere Einstellungen für die Überprüfung sind möglich. VB.NET und Datenbanken, Seite 82

83 DataTable entspricht einer Tabelle im lokalen Datenspeicher. besteht aus Zeilen (Row) und Spalten (Column). speichert die Daten in Form einer Auflistung von Zeilen. Jede Zeile in einer Tabelle sollte durch ein Schlüsselfeld eindeutig gekennzeichnet sein. VB.NET und Datenbanken, Seite 83

84 Neue Spalten erzeugen Public Sub newtable() Dim dskunde As DataSet = New DataSet tblkunde = dskunde.tables.add("tblkunde") tblkunde.columns.add("idkunde", System.Type.GetType("System.Int32")) tblkunde.columns.add("anrede", System.Type.GetType("System.String")) tblkunde.columns.add("kunde", System.Type.GetType("System.String")) tblkunde.columns.add("strasse", System.Type.GetType("System.String")) tblkunde.columns.add("plz", System.Type.GetType("System.String")) tblkunde.columns.add("ort", System.Type.GetType("System.String")) End Sub VB.NET und Datenbanken, Seite 84

85 Erläuterung Mit Hilfe der Methode.Add() werden der Auflistung Columns neue Spalten hinzugefügt. Folgende Parameter werden der Methode übergeben: Die Bezeichnung der Spalte. Der Name sollte immer den Inhalt der Spalte widerspiegeln. Der Datentyp der Spalte wird mit Hilfe der Methode.GetType() festgelegt. Die Methode ist im Namensraum System.Type definiert. VB.NET und Datenbanken, Seite 85

86 Index einer Spalte Dim key As Integer Dim zeile As DataRow Dim indexkey As Integer indexkey = tblkunde.columns.indexof("idkunde") key = CInt(tblKunde.Rows(posKunde).Item(indexKey).ToString) VB.NET und Datenbanken, Seite 86

87 Erläuterung Der Index einer Spalte kann sich durch Löschen oder Verschieben von Spalten verändern. Der Index ist nicht an eine bestimmte Spalte gebunden. Mit Hilfe der Methode.IndexOf() der Auflistung Columns wird der Spaltenindex einer Spalte mit Hilfe der Bezeichnung ermittelt. In diesem Beispiel wird der momentane Index der Spalte IDKunde ermittelt. VB.NET und Datenbanken, Seite 87

88 Inhalt einer Spalte einer Zeile Dim key As Integer Dim zeile As DataRow Dim indexkey As Integer indexkey = tblkunde.columns.indexof("idkunde") key = CInt(tblKunde.Rows(posKunde).Item(indexKey).ToString) VB.NET und Datenbanken, Seite 88

89 Erläuterung Die Eigenschaft Item der Auflistung Rows liefert den Inhalt einer Zelle zurück. Die Position einer Zelle wird durch die Zeilen- sowie Spaltenangabe festgelegt: Die gewünschte Zeile wird durch Angabe eines Indizes ermittelt. Die gewünschte Spalte wird durch den entsprechenden Spaltenindex festgelegt. Der Zelleninhalt wird häufig als String zurückgeliefert. VB.NET und Datenbanken, Seite 89

90 Primärschlüssel Dim keyspalte(1) As DataColumn Dim myspalte As DataColumn tblkunde.columns.add("idkunde", System.Type.GetType("System.Int32")) tblkunde.columns.add("anrede", System.Type.GetType("System.String")) tblkunde.columns.add("kunde", System.Type.GetType("System.String")) tblkunde.columns.add("strasse", System.Type.GetType("System.String")) tblkunde.columns.add("plz", System.Type.GetType("System.String")) tblkunde.columns.add("ort", System.Type.GetType("System.String")) keyspalte(0) = myspalte tblkunde.primarykey = keyspalte VB.NET und Datenbanken, Seite 90

91 Array Dim keyspalte(1) As DataColumn definiert ein Array von Spalten. Ein Array besteht aus vielen verschiedenen Elementen vom gleichen Typ. Das Array hat den Namen keyspalte In runden Klammern wird die Anzahl der Elemente angegeben. Hier besteht das Array aus einem Element. keyspalte(0) = 5 In den runden Klammern wird ein Index angegeben. In diesem Beispiel wird das erste Element eines Arrays angesprochen. VB.NET und Datenbanken, Seite 91

92 Grafische Erläuterung 0 DataColumn keyspalte(3) 1 DataColumn 2 DataColumn VB.NET und Datenbanken, Seite 92

93 Primärschlüssel identifiziert eindeutig eine Zeile in einer Tabelle. kann aus mehreren Spalten zusammengesetzt werden. tblkunde.primarykey legt den Primärschlüssel für die eine Tabelle fest. In diesem Beispiel wird der Schlüssel für die Tabelle tblkunde festgelegt. Eigenschaft und Objekt werden durch ein Punkt getrennt. Mit Hilfe des Gleichheitszeichen wird der Eigenschaft ein Wert zugewiesen. In diesem Fall wird dem Schlüssel ein Array zugewiesen. Die einzelnen Elemente des Arrays enthalten die verschiedenen Schlüsselspalten. Aus den angegebenen Spalten wird der Schlüssel zusammengesetzt. VB.NET und Datenbanken, Seite 93

94 AutoWert nutzen tblkunde.columns.add("idkunde", System.Type.GetType("System.Int32")) tblkunde.columns.add("anrede", System.Type.GetType("System.String")) tblkunde.columns.add("kunde", System.Type.GetType("System.String")) tblkunde.columns.add("strasse", System.Type.GetType("System.String")) tblkunde.columns.add("plz", System.Type.GetType("System.String")) tblkunde.columns.add("ort", System.Type.GetType("System.String")) myspalte = tblkunde.columns("idkunde") myspalte.autoincrement = True myspalte.autoincrementseed = 10 'Anfangswerte myspalte.autoincrementstep = 1 'Inkrement myspalte.readonly = True VB.NET und Datenbanken, Seite 94

95 Erläuterung Die Eigenschaft AutoIncrement bezieht sich immer auf eine Spalte in einer Tabelle. Mit Hilfe der Eigenschaft AutoIncrementSeed wird der Anfangswert für den ersten Datensatz festgelegt. Die Eigenschaft AutoIncrementStep legt die Schrittweite zwischen den einzelnen Werten fest. Spalten mit einem AutoWert sollten schreibgeschützt werden. VB.NET und Datenbanken, Seite 95

96 Neue Datensätze neuezeile = tblkunde.newrow neuezeile("anrede") = txtanrede.text neuezeile("vorname") = txtvorname.text neuezeile("nachname") = txtnachname.text neuezeile("strasse") = txtstrasse.text neuezeile("plz") = txtplz.text neuezeile("ort") = txtort.text tblkunde.rows.add(neuezeile) VB.NET und Datenbanken, Seite 96

97 Ablauf Ein neues DataRow-Objekt wird erzeugt. Das Objekt symbolisiert den Aufbau einer Zeile in einer bestimmten Tabelle. Anschließend wird jeder Spalte in dieser Zeile ein Wert zugewiesen. Das neu erstellte Objekt wird der Tabelle als Datensatz hinzugefügt. VB.NET und Datenbanken, Seite 97

98 Neues Datenobjekt erzeugen Dim neuezeile As DataRow neuezeile = tblkunde.newrow Die Methode tblkunde.newrow erzeugt... eine neue Zeile entsprechend dem Schema in der angegebenen Tabelle.... ein neues DataRow-Objekt. Der Tabellennamen wird mit Hilfe des Punkts von der Methode getrennt. Das erzeugte Objekt wird mit Hilfe des Gleichheitszeichens einer Variablen vom Typ DataRow zugewiesen. VB.NET und Datenbanken, Seite 98

99 Wert einer Zelle zuweisen neuezeile("anrede") = txtanrede.text neuezeile!anrede = txtanrede.text Jede Spalte wird mit Hilfe des Gleichheitszeichens ein Wert zugewiesen. In diesem Beispiel wird der Inhalt eines Textfeldes einer Spalte zugewiesen. Die gewünschte Spalte kann... als Index in runden Klammern angegeben werden. Der Spaltenname wird wie alle Strings durch Anführungszeichen begrenzt.... durch ein Ausrufezeichen vom Namen der Zeile getrennt werden. VB.NET und Datenbanken, Seite 99

100 als Datensatz hinzufügen tblkunde.rows.add(neuezeile) Mit Hilfe der Methode.Add der Rows-Auflistung wird ein neuer Datensatz erzeugt. In diesem Beispiel wird ein neuer Datensatz in der Tabelle tblkunde erzeugt. Als Parameter wird der Methode die neue Zeile übergeben. Die Methode überprüft die Daten auf Gültigkeit und Einschränkung. Zum Beispiel eine leere Zelle, deren Spalte keine Null-Werte erlaubt, erzeugt einen Fehler. VB.NET und Datenbanken, Seite 100

101 Datensätze suchen Dim key As String Dim zeile As DataRow key = tblkunde.rows(poskunde).item(0).tostring If Not tblkunde.rows.contains(key) Then Exit Sub End If zeile = tblkunde.rows(poskunde) VB.NET und Datenbanken, Seite 101

102 Erläuterung Der Methode.Contains().. überprüft, ob ein Datensatz mit den angegebenen Schlüssel vorhanden ist. wird ein Wert für den Primärschlüssel übergeben. gibt true (wahr) zurück, wenn der Schlüsselwert in der Tabelle vorhanden ist. VB.NET und Datenbanken, Seite 102

103 Datensätze suchen Dim key As Integer Dim zeile As DataRow Dim indexkey As Integer indexkey = tblkunde.columns.indexof("idkunde") key = CInt(tblKunde.Rows(posKunde).Item(indexKey).ToString) zeile = tblkunde.rows.find(key) If (zeile Is Nothing) Then Exit Sub tblkunde.rows.remove(tblkunde.rows(poskunde)) VB.NET und Datenbanken, Seite 103

104 Erläuterung Der Methode.Find() wird ein Wert für den Primärschlüssel übergeben. gibt den Datensatz mit dem angegebenen Primärschlüssel zurück. gibt NULL zurück, wenn kein Datensatz mit den angegeben Schlüsselwert vorhanden ist. VB.NET und Datenbanken, Seite 104

105 Datensätze ändern Dim zeile As DataRow zeile = tblkunde.rows(poskunde) zeile.beginedit() zeile("anrede") = txtanrede.text zeile("vorname") = txtvorname.text zeile("nachname") = txtnachname.text zeile("strasse") = txtstrasse.text zeile("plz") = txtplz.text zeile("ort") = txtort.text zeile.endedit() tblkunde.acceptchanges() VB.NET und Datenbanken, Seite 105

106 Status einer Datenzeile Der Status einer Zeile kann mit Hilfe von RowState abgefragt werden. Hinzufügen, Added, 1 Löschen, Deleted, 2 Geändert, Modified, 4 Keine Änderung, Unchanged, 5 Die Methode.AcceptChanges() der DataTable übernimmt alle Änderungen an den Zeilen in die Tabelle. Die Methode wird häufig nach einem Update der Tabelle aufgerufen. Die Methode setzt den Status der geänderten und hinzugefügten Zeilen auf Unchanged. Zu entfernende Zeilen werden gelöscht. VB.NET und Datenbanken, Seite 106

107 Versionen einer Datenzeile lesen txtnachname.text = zeile(indexid, DataRowVersion.Current).ToString In diesem Beispiel wird eine bestimmte Spalte einer Zeile angesprochen. In den runden Klammern wird eine Spaltenummer oder -bezeichnung sowie.. die gewünschte Version angegeben. Mit Hilfe der Methode.HasVersion(DataRowVersion.Current) kann überprüft werden, ob die gewünschte Version vorhanden ist. VB.NET und Datenbanken, Seite 107

108 Mögliche Versionen Orginal enthält die Originaldaten aus der Datenquelle. Neu hinzugefügte Datensätze besitzen keine Originaldaten. Current beschreibt den aktuellen Wert eines Datensatzes. Gelöschte Datensätze verfügen über keine aktuelle Daten. Nach einer Änderungen der Daten haben Current und Original unterschiedliche Werte. Proposed enthält den geänderten Wert, bevor dieser zum aktuellen Wert wird. Der Nutzer schlägt einen neuen Wert für die Zelle vor. Default arbeitet mit den eingestellten Default-Wert. VB.NET und Datenbanken, Seite 108

109 Bearbeitungsstatus Die Methode.BeginEdit() startet den Bearbeitungsmodus. Die Methode.EndEdit() beendet den Bearbeitungsmodus einer Zeile. Änderungen in diesem Modus lösen das Ereignis ColumnChanged der DataTable aus. VB.NET und Datenbanken, Seite 109

110 Ereignis Spalte geändert Private Sub oncolumnchanged(byval sender As Object,... If args.column.columnname = "Nachname" Then ByVal args As DataColumnChangeEventArgs) Handles tblkunde.columnchanged If args.proposedvalue.tostring = String.Empty Then MsgBox("Der Nachname muss angegeben werden.") args.row.canceledit() zeile = args.row indexid = tblkunde.columns.indexof("nachname") txtnachname.text = zeile(indexid, DataRowVersion.Current).ToString End If End If VB.NET und Datenbanken, Seite 110

111 Erläuterung Der Parameter args enthält verschiedene Informationen zu der zu ändernden Zeile. Mit Hilfe von args.column die zu ändernde Spalte in der Datenzeile beschrieben. Die Informationen können nur gelesen werden. Mit Hilfe von args.row kann auf die zu ändernde Datenzeile zugegriffen werden. Die Eigenschaft ProposedValue enthält den geänderten Wert. Mit Hilfe der Methode.CancelEdit() wird die Änderung zurückgenommen. Der Datensatz behält seine aktuellen Werte. Die vorgeschlagenen Werte werden nicht angenommen. VB.NET und Datenbanken, Seite 111

112 WithEvents Private WithEvents tblkunde As DataTable Es wird eine Variable tblkunde vom Objekttyp DataTable erstellt. Die Variable ist privat. Das heißt, sie ist nur innerhalb der Klasse oder Prozedur bekannt, in der sie definiert ist. Diese Variable kann auf Ereignisse reagieren (WithEvents). In diesem Beispiel reagiert die Tabelle auf das Ereignis Spalte geändert. Jedes Steuerelement wird in [Form].Designer.vb mit dieser Zeile deklariert. VB.NET und Datenbanken, Seite 112

113 Datensätze löschen Dim key As Integer Dim zeile As DataRow Dim indexkey As Integer indexkey = tblkunde.columns.indexof("idkunde") key = CInt(tblKunde.Rows(posKunde).Item(indexKey).ToString) zeile = tblkunde.rows.find(key) If (zeile Is Nothing) Then Exit Sub tblkunde.rows.remove(tblkunde.rows(poskunde)) VB.NET und Datenbanken, Seite 113

114 Hinweis Der Datensatz wird aus den lokalen Speicher gelöscht. Ein Datensatz sollte nur aus der DataTable gelöscht werden, wenn die Daten in eine elektronische Datei gespeichert werden. Falls eine Datenbank als Datenquelle existiert, müssen die Daten synchronisiert werden. VB.NET und Datenbanken, Seite 114

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

C# - Einführung in die Programmiersprache Arbeiten mit ADO.NET. Leibniz Universität IT Services Anja Aue C# - Einführung in die Programmiersprache Arbeiten mit ADO.NET Leibniz Universität IT Services Anja Aue Experteneinstellungen in Visual Studio Express Extras Einstellungen Experteneinstellungen. Es werden

Mehr

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

Datenbanken. Proseminar Objektorientiertes Programmieren mit.net und C# Sebastian Pintea. Institut für Informatik Software & Systems Engineering Datenbanken Proseminar Objektorientiertes Programmieren mit.net und C# Sebastian Pintea Institut für Informatik Software & Systems Engineering Agenda 1. Datenbanken 2. SQL 3. ADO.NET DataProvider (providerabhängig)

Mehr

Access 2010 Programmierung Import und Export nach Excel

Access 2010 Programmierung Import und Export nach Excel Access 2010 Programmierung Import und Export nach Excel Excel... ist das Tabellenkalkulationsprogramm von Microsoft Office. wird genutzt, um numerische Daten in Tabellenform zu erfassen. kann Daten automatisch

Mehr

Excel VBA Fehler im Programm

Excel VBA Fehler im Programm Excel VBA Fehler im Programm Fehler (Bugs) Syntaxfehler entstehen beim Schreiben des Programmcodes. Logische Fehler können durch Denkfehler bei der Umsetzung der Aufgabe in ein Programm erzeugt werden.

Mehr

Microsoft Access 2010 Bilder

Microsoft Access 2010 Bilder Microsoft Access 2010 Bilder Hyperlinks... arbeiten ähnlich wie ein Link in einer Webseite. sind ein Verweis auf eine Datei (access2010\material\beispiel\tabledevelop\automat.accdb). können ein Verweis

Mehr

Access 2010 Programmierung Schleifen

Access 2010 Programmierung Schleifen Access 2010 Programmierung Schleifen Gehe nach links oder rechts Gehe solange geradeaus... Beispiel für Schleifen In einem Formular gibt der Benutzer für den Farbanteil Rot einen Unter- und Obergrenze

Mehr

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

JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann. JDBC in 5 Schritten JDBC (Java Database Connectivity) ist eine Sammlung von Klassen und Schnittstellen, mit deren Hilfe man Verbindungen zwischen Javaprogrammen und Datenbanken herstellen kann. 1 Einrichten

Mehr

WIE KANN ICH ACCESS XML FÄHIGKEITEN UNABHÄNGIG VON DER VERSION BEIBRINGEN?

WIE KANN ICH ACCESS XML FÄHIGKEITEN UNABHÄNGIG VON DER VERSION BEIBRINGEN? XML 1 WIE KANN ICH ACCESS XML FÄHIGKEITEN UNABHÄNGIG VON DER VERSION BEIBRINGEN? Mit den verschiedenen Versionen von Access wurde die Unterstützung von XML immer mehr verbessert. Vollständig ist sie aber

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin PhpMyAdmin = grafsches Tool zur Verwaltung von MySQL-Datenbanken Datenbanken erzeugen und löschen Tabellen und Spalten einfügen,

Mehr

Einführung in VisualBasic for Applications. Stefan Mahlitz

Einführung in VisualBasic for Applications. Stefan Mahlitz Einführung in VisualBasic for Applications Stefan Mahlitz Stefan Mahlitz Einführung in VBA 27.08.00 Inhaltsverzeichnis 1. Grundlagen der VisualBasic for Applications (VBA) Programmierung...2 1.1 Variablen,

Mehr

Microsoft Access 2010 Daten importieren

Microsoft Access 2010 Daten importieren Microsoft Access 2010 Daten importieren Daten nach Access importieren Klick auf den Reiter des Menübandes Externe Daten. In der Gruppe Importieren und Verknüpfen werden mit Hilfe von Befehlen die verschiedenen

Mehr

Datumsangaben, enthält mindestens Jahr, Monat, Tag

Datumsangaben, enthält mindestens Jahr, Monat, Tag Datenbanken mit SQL Informatik - Sprenger Häufig wird mit Tabellenkalkulationen gearbeitet, obwohl der Einsatz von Datenbanken sinnvoller ist. Tabellenkalkulationen wie Microsoft Excel oder LibreOffice

Mehr

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER INHALTSVERZEICHNIS 1. Datenbanken 2. SQL 1.1 Sinn und Zweck 1.2 Definition 1.3 Modelle 1.4 Relationales Datenbankmodell 2.1 Definition 2.2 Befehle 3.

Mehr

Grundlagen der Informatik 2

Grundlagen der Informatik 2 Grundlagen der Informatik 2 Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 1 Gliederung 1. Einführung

Mehr

16 SQL Server-Zugriff per VBA

16 SQL Server-Zugriff per VBA Leseprobe aus Access und SQL Server http://www.acciu.de/asqllesen 16 SQL Server-Zugriff per VBA Sie werden an verschiedenen Stellen per VBA auf die Tabellen der SQL Server-Datenbank zugreifen müssen sei

Mehr

Access [basics] Programmieren mit Arrays. Beispieldatenbank. Arrays. Eindimensionale Arrays. VBA-Grundlagen Programmieren mit Arrays

Access [basics] Programmieren mit Arrays. Beispieldatenbank. Arrays. Eindimensionale Arrays. VBA-Grundlagen Programmieren mit Arrays Dass Sie unter Access Daten in Tabellen speichern und gezielt darauf zugreifen können, wissen Sie als Access [basics]-leser schon längst. Aber was, wenn Sie nur ein paar gleichartige Daten zwischenspeichern

Mehr

Microsoft Access 2010 SQL nutzen

Microsoft Access 2010 SQL nutzen Microsoft Access 2010 SQL nutzen Welche Bestellungen hat Kunde x aufgegeben? Welche Kunden haben noch nie bestellt? Wer hat welche Bestellungen von welchen Kunden aufgenommen? S(tructured)Q(uery)L(anguage)

Mehr

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben. MySQL-Befehle 1. Einleitung In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben. 2. Arbeiten mit Datenbanken 2.1 Datenbank anlegen Eine Datenbank kann man wie folgt

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

SQL structured query language

SQL structured query language Umfangreiche Datenmengen werden üblicherweise in relationalen Datenbank-Systemen (RDBMS) gespeichert Logische Struktur der Datenbank wird mittels Entity/Realtionship-Diagrammen dargestellt structured query

Mehr

VBA (Visual Basic for Application) D(ata) A(ccess) O(bjects)

VBA (Visual Basic for Application) D(ata) A(ccess) O(bjects) VBA (Visual Basic for Application) D(ata) A(ccess) O(bjects) DAO und ADO DAO (Data Access Object)... wird für die Programmierung und Manipulation von Access-Datenbanken und deren Objekte genutzt.... ist

Mehr

Dokumentation zur Anlage eines JDBC Senders

Dokumentation zur Anlage eines JDBC Senders Dokumentation zur Anlage eines JDBC Senders Mithilfe des JDBC Senders ist es möglich auf eine Datenbank zuzugreifen und mit reiner Query Datensätze auszulesen. Diese können anschließend beispielsweise

Mehr

VB.NET und Datenbanken Datenbanken und Windows Forms

VB.NET und Datenbanken Datenbanken und Windows Forms VB.NET und Datenbanken Datenbanken und Windows Forms Projektdatenquelle anlegen Der Menübefehl Daten Neue Datenquelle hinzufügen startet einen Assistenten. Im ersten Schritt machen Sie Angaben zur der

Mehr

Überschrift/Caption. Eigenschaftenfenster

Überschrift/Caption. Eigenschaftenfenster UsserrForrm errssttel llen Dass Codeffensstterr 22000044 NNi iikkoo BBeecckkeerr Öffnen Sie EXCEL und wechseln Sie mit der Tastenkombination Alt + F11 in den Visual Basic-Editor. Alternativ können Sie

Mehr

A BFRAGEN IN M ICROSOFT A CCESS

A BFRAGEN IN M ICROSOFT A CCESS A BFRAGEN IN M ICROSOFT A CCESS Was macht eine Abfrage? Eine Abfrage speichert keine Daten, sondern nur die Vorschrift, welche Daten wie angezeigt und ausgewertet werden sollen. Abfragen können Daten aus

Mehr

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

Mehr

Kurzanleitung: Datenbank-Anwendung mit Visual Basic.NET Hier mit ACCESS-Datenbank, andere analog! Unter Visual Studio 2005 getestet.

Kurzanleitung: Datenbank-Anwendung mit Visual Basic.NET Hier mit ACCESS-Datenbank, andere analog! Unter Visual Studio 2005 getestet. Kurzanleitung: Datenbank-Anwendung mit Visual Basic.NET Hier mit ACCESS-Datenbank, andere analog! Unter Visual Studio 2005 getestet. Grundprinzip ist heute die strikte Trennung von Datenbank und Anwendung!

Mehr

Einstieg in VBA mit Excel Galileo Press

Einstieg in VBA mit Excel Galileo Press Thomas Theis Einstieg in VBA mit Excel Galileo Press Geleitwort des Fachgutachters 15 loooodoooooooockx)ock90000000aqoc^oc}ooaooooooooocx>c)ooocxx3ao 1 1 Was wird besser durch Makros und VBA? 17 12 Arbeiten

Mehr

Kontrollstrukturen MySQL Funktionen. MySQL 4, 5. Kapitel 20a: PHP Teil 2. Marcel Noe

Kontrollstrukturen MySQL Funktionen. MySQL 4, 5. Kapitel 20a: PHP Teil 2. Marcel Noe MySQL 4, 5 Kapitel 20a: PHP Teil 2 Gliederung 1 2 Gliederung 1 2 Die ermöglicht ein Bedingtes Ausführen von Code-Abschnitten. Nur wenn die Bedingung erfüllt ist wird der Block hinter if ausgeführt. Ist

Mehr

Prozedurale Datenbank- Anwendungsprogrammierung

Prozedurale Datenbank- Anwendungsprogrammierung Idee: Erweiterung von SQL um Komponenten von prozeduralen Sprachen (Sequenz, bedingte Ausführung, Schleife) Bezeichnung: Prozedurale SQL-Erweiterung. In Oracle: PL/SQL, in Microsoft SQL Server: T-SQL.

Mehr

Microsoft Access 2010 und Excel Leibniz Universität IT Services Anja Aue

Microsoft Access 2010 und Excel Leibniz Universität IT Services Anja Aue Microsoft Access 2010 und Excel 2010 Leibniz Universität IT Services Anja Aue Microsoft Excel Kalkulationen von numerischen Daten. Nutzung eines Taschenrechners. Berechnung von großen Zahlenmengen mit

Mehr

Whitepaper. Produkt: combit Relationship Manager 6. Import von Adressen nach Firmen und Kontakte. combit GmbH Untere Laube 30 78462 Konstanz

Whitepaper. Produkt: combit Relationship Manager 6. Import von Adressen nach Firmen und Kontakte. combit GmbH Untere Laube 30 78462 Konstanz combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager 6 Import von Adressen nach Firmen und Kontakte Import von Adressen nach Firmen und Kontakte - 2 - Inhalt Ausgangssituation

Mehr

Variablen und Konstanten

Variablen und Konstanten Variablen und Konstanten Variablen und Konstanten werden benötigt, um sich in Prozeduren Werte zu merken oder zu übergeben. Es gibt numerische Werte (1 / 10,9) und es gibt alphanumerische Zeichenfolgen

Mehr

Einführung in ADO.NET

Einführung in ADO.NET Manfred Hoffbauer, Düsseldorf Die in Microsoft Access integrierte Programmiersprache VBA unterstützt den Zugriff auf Access- Datenbanken per DAO und ADO. Auch in Microsoft Visual Basic.NET ist mit ADO.NET

Mehr

Excel VBA Arrays, Enumeration und benutzerdefinierte Typen

Excel VBA Arrays, Enumeration und benutzerdefinierte Typen Excel VBA Arrays, Enumeration und benutzerdefinierte Typen Array (Feld)... ist aus vielen Variablen, die den gleichen Datentyp besitzen, zusammengesetzt.... fasst Elemente vom gleichen Datentyp zusammen....

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen

Mehr

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2 Fakultät Verkehrswissenschaften Friedrich List, Professur für Verkehrsbetriebslehre und Logistik Modul Entscheidungsunterstützung in der Logistik Einführung in die Programmierung mit C++ Übung 2 SS 2016

Mehr

Informationsverarbeitung im Bauwesen

Informationsverarbeitung im Bauwesen 11 im Bauwesen Markus Uhlmann 1 Zusammenfassung der 10. Vorlesung Benutzerdefinierte Datentypen Wieso zusätzliche Datentypen? Definition neuer Datentypen Verwendung von Variablen mit benutzerdefiniertem

Mehr

Labor 3 - Datenbank mit MySQL

Labor 3 - Datenbank mit MySQL Labor 3 - Datenbank mit MySQL Hinweis: Dieses Labor entstand z.t. aus Scripten von Prof. Dr. U. Bannier. 1. Starten des MySQL-Systems MySQL ist ein unter www.mysql.com kostenlos erhältliches Datenbankmanagementsystem.

Mehr

1 Visual Basic for Application mit Excel (VBA)

1 Visual Basic for Application mit Excel (VBA) Informatikfreikurs WS 2008/2009 1 1 Visual Basic for Application mit Excel (VBA) 1.1 Mosaik Puzzle Das untenstehende Zahlenschema ist ein sogenanntes Mosaik Puzzle. Jede Zahl zeigt an, wie viele der (höchstens

Mehr

Modul 122 VBA Scribt.docx

Modul 122 VBA Scribt.docx Modul 122 VBA-Scribt 1/5 1 Entwicklungsumgebung - ALT + F11 VBA-Entwicklungsumgebung öffnen 2 Prozeduren (Sub-Prozeduren) Eine Prozedur besteht aus folgenden Bestandteilen: [Private Public] Sub subname([byval

Mehr

Datenbankimplementierung

Datenbankimplementierung ENTWICKLUNG Datenbankimplementierung Datenbankimplementierung Christian Zahler Sofern Ausführungen auf SQL Server 2005 Bezug nehmen, gelten sie gleichermaßenauchfürsql Server 2008. 6 Client-Programmierung

Mehr

PostgreSQL unter Debian Linux

PostgreSQL unter Debian Linux Einführung für PostgreSQL 7.4 unter Debian Linux (Stand 30.04.2008) von Moczon T. und Schönfeld A. Inhalt 1. Installation... 2 2. Anmelden als Benutzer postgres... 2 2.1 Anlegen eines neuen Benutzers...

Mehr

Inhaltsverzeichnis. jetzt lerne ich

Inhaltsverzeichnis. jetzt lerne ich Inhaltsverzeichnis jetzt lerne ich Einführung 15 1 Erste Schritte 21 1.1 Datenbanken und Datenbank-Managementsysteme 21 1.2 Zugriff auf Datenbanken 22 1.3 Was der Großvater noch wusste... 22 1.4 Einordnung

Mehr

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023 Kapitel 33 Der xml-datentyp In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023 995 996 Kapitel 33: Der xml-datentyp Eine der wichtigsten

Mehr

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

Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011. Übungen zur Vorlesung Informatik II, Blatt 6 WS 2011/12 Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011 Prof. Dr. Bernhard Bauer Übungen zur Vorlesung Informatik II, Blatt 6 Abgabe: Montag, 05.12.2011, 12.00 Uhr, Informatik

Mehr

Programmieren I + II Regeln der Code-Formatierung

Programmieren I + II Regeln der Code-Formatierung Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme WS 2016/2017, SS 2017 Programmieren I + II Regeln der Code-Formatierung In diesem Dokument finden

Mehr

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt. Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Datenbanken und Informationssysteme II Szenario: Projektverwaltung. Es gibt Projekte, Projektleiter, Mitarbeiter und ihre Zuordnung zu Projekten.

Mehr

Visual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen!

Visual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen! Visual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen! Grundstrukturen: Sub [name]([übergabe]) End Sub [Übergabe] ist

Mehr

Visual Basic.NET und ADO.NET

Visual Basic.NET und ADO.NET .NETSolutions Visual Basic.NET und ADO.NET Datenbanken programmieren F. SCOTT BARKER Markt+ Übersetzung: Gabriele Broszat Einleitung Zum Autor Zur Begleit-CD-ROM Wer sollte dieses Buch nutzen? Welche Themen

Mehr

Access 2003 Programmierung mit Visual Basic

Access 2003 Programmierung mit Visual Basic Access 2003 Programmierung mit Visual Basic Autor: Andreas Klein 3. Auflage: 2005 Merkwerk Alle Rechte vorbehalten. Kein Teil des Werkes darf in irgendeiner Form ohne Genehmigung der Firma Merkwerk reproduziert

Mehr

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

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und 2005. combit GmbH Untere Laube 30 78462 Konstanz combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager Datensatzhistorie mit dem SQL Server 2000 und 2005 Datensatzhistorie mit dem SQL Server 2000 und 2005-2 - Inhalt

Mehr

Einstieg in VBA mit Excel Galileo Press

Einstieg in VBA mit Excel Galileo Press Thomas Theis Einstieg in VBA mit Excel Galileo Press Auf einen Blick 1 Einführung 15 2 Grundlagen von Objekten und Ereignissen 45 3 Grundlagen der Programmierung mit VBA 93 4 Fehlerbehandlung 125 5 Mehr

Mehr

Begleitskript. zum PHP/MySQL. Kurs

Begleitskript. zum PHP/MySQL. Kurs Begleitskript zum PHP/MySQL Kurs http://www.online-platform.net Dieser Text unterliegt der GNU General Public License. Er darf als ganzes oder in Auszügen kopiert werden, vorausgesetzt, dass sich dieser

Mehr

MGE Datenanbindung in GeoMedia

MGE Datenanbindung in GeoMedia TIPPS & TRICKS MGE Datenanbindung in GeoMedia 10. September 2002 / AHU INTERGRAPH (Schweiz) AG Neumattstrasse 24, CH 8953 Dietikon Tel: 043 322 46 46 Fax: 043 322 46 10 HOTLINE: Telefon: 043 322 46 00

Mehr

Die SQL-Schnittstelle

Die SQL-Schnittstelle Die SQL-Schnittstelle Merlin 16 Version 16.0 vom 09.10.2012 Inhalt Die SQL-Export-Schnittstelle... 4 Der Menüpunkt Abfrage durchführen... 4 Beschreibung Fenster Abfrage durchführen... 4 Schaltflächen Fenster

Mehr

Visual Basic.NET undado.net

Visual Basic.NET undado.net .NETSolutions Visual Basic.NET undado.net Datenbanken programmieren F. SCOTT BARKER Markt+ Übersetzung: Gabriele Broszat Einleitung 21 Zum Autor Zur Begleit-CD-ROM Wer sollte dieses Buch nutzen? Welche

Mehr

Oracle: Abstrakte Datentypen:

Oracle: Abstrakte Datentypen: Oracle: Abstrakte Datentypen: Oracle bietet zwei mögliche Arten um abstrakte Datentypen zu implementieren: Varying Array Nested Table Varying Array (kunde) kdnr kdname gekaufteart 1 Mustermann 1 4 5 8

Mehr

1.4.12 Sin-Funktion vgl. Cos-Funktion

1.4.12 Sin-Funktion vgl. Cos-Funktion .4. Sgn-Funktion Informatik. Semester 36 36.4.2 Sin-Funktion vgl. Cos-Funktion Informatik. Semester 37 37 .4.3 Sqr-Funktion Informatik. Semester 38 38.4.4 Tan-Funktion Informatik. Semester 39 39 .5 Konstanten

Mehr

PHP und Datenbanken. Verbindung zum Datenbankserver

PHP und Datenbanken. Verbindung zum Datenbankserver PHP und Datenbanken Verbindung zum Datenbankserver Um PHP mit einer MySQL-Datenbank zu verbinden, braucht man zuerst eine Verbindung zum Datenbankserver. Diese Verbindung ist Vorraussetzung, um eine bestimmte

Mehr

Gregor Kuhlmann Friedrich Müllmerstadt. MySQL. Der Schlüssel zu Datenbanken-Design und -Programmierung. c 3 E. i- O Rowohlt Taschenbuch Verlag

Gregor Kuhlmann Friedrich Müllmerstadt. MySQL. Der Schlüssel zu Datenbanken-Design und -Programmierung. c 3 E. i- O Rowohlt Taschenbuch Verlag Gregor Kuhlmann Friedrich Müllmerstadt MySQL Der Schlüssel zu Datenbanken-Design und -Programmierung r?: X c 3 E i- O uu Rowohlt Taschenbuch Verlag Inhalt Editorial 11 Einleitung 12 1 Einführung in das

Mehr

Access [basics] Aktionsabfragen per VBA ausführen. Beispieldatenbank. Aktionsabfragen. Die Execute-Methode. Datenzugriff per VBA

Access [basics] Aktionsabfragen per VBA ausführen. Beispieldatenbank. Aktionsabfragen. Die Execute-Methode. Datenzugriff per VBA Aktionsabfragen lassen sich bequem mit der Entwurfsansicht für Abfragen zusammenstellen. Sie können damit Daten an Tabellen anfügen, bestehende Daten ändern oder löschen und sogar gleich die passende Tabelle

Mehr

Eine völlig andere Form Abfragen zu erstellen ist, sie mit Hilfe der Datenbankabfragesprache SQL zu gestalten.

Eine völlig andere Form Abfragen zu erstellen ist, sie mit Hilfe der Datenbankabfragesprache SQL zu gestalten. Einführung SQL 2010 Niko Becker Mit unseren Übungen zu ACCESS können Sie Aufbau und Struktur einer relationalen Datenbank kennenlernen. Wir zeigen Ihnen wie Sie Tabellen, Formulare und Berichte erstellen

Mehr

Eine eigene Zugangsverwaltung für Excel

Eine eigene Zugangsverwaltung für Excel Eine eigene Zugangsverwaltung für Excel 1 Eine eigene Zugangsverwaltung für Excel Bernd Held, Vaihingen an der Enz Inhalt 1 Benutzerverwaltung einrichten...1 2 Die Schutz-Makros...3 3 Aktionen verhindern...6

Mehr

Fachhochschule Kaiserslautern Labor Datenbanken mit MySQL SS2006 Versuch 1

Fachhochschule Kaiserslautern Labor Datenbanken mit MySQL SS2006 Versuch 1 Fachhochschule Kaiserslautern Fachbereiche Elektrotechnik/Informationstechnik und Maschinenbau Labor Datenbanken Versuch 1 : Die Grundlagen von MySQL ------------------------------------------------------------------------------------------------------------

Mehr

VBA mit Excel. Einführung VBA mit Excel. Einführung

VBA mit Excel. Einführung VBA mit Excel. Einführung VBA mit Excel Einführung Die Programmiersprache VBA (Visual Basic for Applications) gewinnt zunehmend an Bedeutung, weil alle MSOfficeProgramme von VBA unterstützt werden. VBA ist aus der sehr viel mächtigeren

Mehr

Access Grundkurs. M. Eng. Robert Maaßen

Access Grundkurs. M. Eng. Robert Maaßen Access Grundkurs M. Eng. Robert Maaßen Wer steht da? M. Eng. Robert Maaßen ich@robertmaassen.de www.robertmaassen.de Studium: Informatik Vertiefungsrichtung Medientechnik, Diplom Ingenieur (FH), HAWK,

Mehr

SQL-Befehlsliste. Vereinbarung über die Schreibweise

SQL-Befehlsliste. Vereinbarung über die Schreibweise Vereinbarung über die Schreibweise Schlüsselwort [optionale Elemente] Beschreibung Befehlsworte in SQL-Anweisungen werden in Großbuchstaben geschrieben mögliche, aber nicht zwingend erforderliche Teile

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

Erstellung von abhängigen Kombinationsfeldern mit dazugehörigen Unterformular...1

Erstellung von abhängigen Kombinationsfeldern mit dazugehörigen Unterformular...1 Erstellung von abhängigen Kombinationsfeldern mit dazugehörigen Inhaltsverzeichnis Erstellung von abhängigen Kombinationsfeldern mit dazugehörigen...1 Inhaltsverzeichnis...1 Einleitung...1 Vorgaben...1

Mehr

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

PHP und MySQL. Integration von MySQL in PHP. Zellescher Weg 12 Willers-Bau A109 Tel. +49 351-463 - 32424. Michael Kluge (michael.kluge@tu-dresden. Zentrum für Informationsdienste und Hochleistungsrechnen (ZIH) PHP und MySQL Integration von MySQL in PHP Zellescher Weg 12 Willers-Bau A109 Tel. +49 351-463 - 32424 (michael.kluge@tu-dresden.de) MySQL

Mehr

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

Mehr

4 Schleifen -= Entstanden unter Excel 2003 =-

4 Schleifen -= Entstanden unter Excel 2003 =- Excel KnowHow / Visual Basic (VBA) 4 Schleifen -= Entstanden unter Excel 2003 =- Die erste Schleife habe ich bereits im letzten Kapitel benutzt: Die FOR-Schleife. Schauen wir uns das Beispiel noch einmal

Mehr

SQL. Datenmanipulation. Datenmanipulationssprache. Ein neues Tupel hinzufügen. Das INSERT Statement

SQL. Datenmanipulation. Datenmanipulationssprache. Ein neues Tupel hinzufügen. Das INSERT Statement SQL Datenmanipulation Datenmanipulationssprache Ein DML Statement wird ausgeführt wenn: neue Tupel eingefügt werden existierende Tupel geändert werden existierende Tupel aus der Tabelle gelöscht werden

Mehr

Artikel Schnittstelle über CSV

Artikel Schnittstelle über CSV Artikel Schnittstelle über CSV Sie können Artikeldaten aus Ihrem EDV System in das NCFOX importieren, dies geschieht durch eine CSV Schnittstelle. Dies hat mehrere Vorteile: Zeitersparnis, die Karteikarte

Mehr

Betreutes Programmieren Vorlesung Informatik II, Blatt 7 Musterlösung

Betreutes Programmieren Vorlesung Informatik II, Blatt 7 Musterlösung SS 2011 Fakultät für Angewandte Informatik Lehrprofessur für Informatik 15.06.2011 Prof. Dr. Robert Lorenz Betreutes Programmieren Vorlesung Informatik II, Blatt 7 Musterlösung Programmieraufwand für geübte

Mehr

Auswertung der Workload-Befragung mit MS ACCESS

Auswertung der Workload-Befragung mit MS ACCESS Auswertung der Workload-Befragung mit MS ACCESS Inhaltsverzeichnis 1. Aufbereitung der Daten... 2 1.1. Herstellung der Textfiles... 2 1.2. Import der Textdateien... 3 1.3. Verbindungen erstellen... 8 2.

Mehr

Shell-Scripting Linux-Kurs der Unix-AG

Shell-Scripting Linux-Kurs der Unix-AG Shell-Scripting Linux-Kurs der Unix-AG Andreas Teuchert 8. Juli 2014 Was ist ein Shell-Script? Aneinanderreihung von Befehlen, die ausgeführt werden Bedingte und wiederholende Ausführung möglich Nützlich

Mehr

Inhaltsverzeichnis. Teil I Erste Schritte. 1 Einleitung Visual Basic 2010 Express installieren Teil II Grundlagen von Visual Basic

Inhaltsverzeichnis. Teil I Erste Schritte. 1 Einleitung Visual Basic 2010 Express installieren Teil II Grundlagen von Visual Basic Teil I Erste Schritte 1 Einleitung.... 11 1.1 Die Themenschwerpunkte dieses Buches.... 11 Visual Basic 2010 Express.... 11 Visual Basic 2010.... 12.NET Framework.... 13 1.2 Wie Sie am besten mit diesem

Mehr

UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme

UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme 8. Übung zur Vorlesung Datenbanksysteme WS 08/09 Musterlösung Aufgabe 8-1: SQLJ //

Mehr

Einführung Datenbank

Einführung Datenbank Einführung Datenbank Einführung Datenbank Seite 2 Einführung in die Arbeit mit einer Datenbank Grundbegriffe: Datenbank - Datenbankmanagementsystem Eine Datenbank ist eine systematische strukturierte Sammlung

Mehr

Erstellen von speziellen Ereignissen in C#

Erstellen von speziellen Ereignissen in C# Erstellen von speziellen Ereignissen in C# Anhand eines Projekts, das demonstriert, wie spezielle Ereignisse ausgelöst werden und wie sie sich auf den verwendeten Code auswirken, zeigen wir Ihnen, wie

Mehr

Whitepaper. Produkt: combit Relationship Manager 7, address manager 17. Import von Adressen nach Firmen und Kontakte

Whitepaper. Produkt: combit Relationship Manager 7, address manager 17. Import von Adressen nach Firmen und Kontakte combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager 7, address manager 17 Import von Adressen nach Firmen und Kontakte Import von Adressen nach Firmen und Kontakte

Mehr

MySql und PHP. Apache2: Konfigurieren für php4. ...\apache2\conf\httpd.conf aufrufen. Folgende Zeilen einfügen:

MySql und PHP. Apache2: Konfigurieren für php4. ...\apache2\conf\httpd.conf aufrufen. Folgende Zeilen einfügen: MySql und PHP Apache2: Konfigurieren für php4...\apache2\conf\httpd.conf aufrufen Folgende Zeilen einfügen: LoadModule php4_module "c:/php/php4apache2.dll" AddType application/x-httpd-php.php Wichtig!!

Mehr

JDBC. Allgemeines ODBC. java.sql. Beispiele

JDBC. Allgemeines ODBC. java.sql. Beispiele JDBC Java Data Base Connectivity Programmierschnittstelle für relationale Datenbanken Sammlung von Klassen, welche zum Aufbau einer Verbindung zwischen einem Java-Programm und einer Datenbank dienen Verwendet

Mehr

Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten)

Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten) Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten) O/R Mapping - Objekte (Attribute) - 1:1, 1:n, n:m Beziehungen - Vererbungen (- Interfaces)

Mehr

Datenbanksysteme SS 2007

Datenbanksysteme SS 2007 Datenbanksysteme SS 2007 Frank Köster (Oliver Vornberger) Institut für Informatik Universität Osnabrück Kapitel 9c: Datenbankapplikationen Architektur einer Web-Applikation mit Servlets, JSPs und JavaBeans

Mehr

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten

Mehr

10. Datenbank Design 1

10. Datenbank Design 1 1 Die Hauptaufgabe einer Datenbank besteht darin, Daten so lange zu speichern bis diese explizit überschrieben oder gelöscht werden. Also auch über das Ende (ev. sogar der Lebenszeit) einer Applikation

Mehr

Access [basics] Tabellenverknüpfungen pflegen. Beispieldatenbank. Verknüpfungen erneuern. Anwendungsfälle. Grundlagen der Verknüpfung

Access [basics] Tabellenverknüpfungen pflegen. Beispieldatenbank. Verknüpfungen erneuern. Anwendungsfälle. Grundlagen der Verknüpfung Wenn Sie eine Datenbank in Frontend und Backend aufgeteilt haben, greift das Frontend über eine Verknüpfung auf die Tabellen im Backend zu. Wo sich das Backend befindet, wird in einer Systemtabelle gespeichert.

Mehr

MS Access 2013 Kompakt

MS Access 2013 Kompakt 2 ABFRAGEN Eine Abfrage ist im Wesentlichen der Filterung eines Datenbestandes sehr ähnlich. Auch hier werden aus einer Menge von Informationen nur jene Datensätze ausgewählt, die einem vorher definierten

Mehr

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

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung Inhalt Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle Daten und Tabellen Normalisierung, Beziehungen, Datenmodell SQL - Structured Query Language Anlegen von Tabellen Datentypen (Spalten,

Mehr

2017/01/23 15:50 1/5 Bedienung

2017/01/23 15:50 1/5 Bedienung 2017/01/23 15:50 1/5 Bedienung Bedienung (J.Müller, Hilfe zu JTCEMU) Das originale 2K-System Das 2 KByte große Betriebssystem bietet die wichtigsten Funktionen zur Eingabe und Verwaltung von BASIC-Programmen.

Mehr

ASP.NET. Grundlagen und Profiwissen. Webserverprogrammierung und XML Web Services im.net-framework. von Patrick A Lorenz.

ASP.NET. Grundlagen und Profiwissen. Webserverprogrammierung und XML Web Services im.net-framework. von Patrick A Lorenz. ASP.NET Grundlagen und Profiwissen. Webserverprogrammierung und XML Web Services im.net-framework von Patrick A Lorenz überarbeitet ASP.NET Lorenz schnell und portofrei erhältlich bei beck-shop.de DIE

Mehr

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de 08 Datenbanken Übung SQL Einführung Eckbert Jankowski www.iit.tu-cottbus.de Datenmodell (Wiederholung, Zusammenfassung) Objekte und deren Eigenschaften definieren Beziehungen zwischen den Objekten erkennen/definieren

Mehr

Datenbanken in ArcGIS - Externe Daten verwalten und nutzen (werner.ackermann@pan-gmbh.com)

Datenbanken in ArcGIS - Externe Daten verwalten und nutzen (werner.ackermann@pan-gmbh.com) Datenbanken in ArcGIS - Externe Daten verwalten und nutzen (werner.ackermann@pan-gmbh.com) Oftmals werden in einem GIS-Projekt Sachdaten verschiedenster externer Quellen verarbeitet. Zudem erweist sich

Mehr

2 7 Erweiterungen. 7.1 Prozess-Kommunikation mit Datenbanken

2 7 Erweiterungen. 7.1 Prozess-Kommunikation mit Datenbanken 2 7 Erweiterungen 7 Erweiterungen 7.1 Prozess-Kommunikation mit Datenbanken Im Buch Einstieg in das Programmieren mit MATLAB wird im Abschnitt 4.8 das Thema Prozess-Kommunikation am Beispiel von MS-Excel

Mehr