Direkter SQL-Zugriff und SQL-Injection

Wenn Sie von Access kommen und es gewohnt sind, Abfragen mit der Entwurfsansicht über die Benutzeroberfläche anzulegen, kann schon das Zusammenstellen von SQL-Abfragen nervig sein. Aber diese kann man unter Access immerhin noch aus der SQL-Ansicht einer Abfrage ermitteln. Was aber, wenn man nun Abfragen in LINQ formulieren soll, wo es noch nicht einmal eine grafische Entwurfsansicht gibt Nun: Es gibt auch unter Entity Framework die Möglichkeit, SQL-Befehle abzusetzen. Das ist auch deshalb interessant, weil Sie so auch gespeicherte Prozeduren ausführen können. Wie das gelingt, zeigt der vorliegende Artikel.

Weiterlesen

Visual Studio erweitern: Menübefehle

Visual Studio bietet die Möglichkeit der Erweiterung durch verschiedene Elemente wie etwa Add-Ins, Templates oder Packages. Damit können Sie den Funktionsumfang von Visual Studio nach Ihren eigenen Wünschen erweitern. Ein sehr oft genutztes Beispiel ist etwa das Hinzufügen von Menübefehlen. Sie können neue Befehle zu den bestehenden Menüs des Hauptmenüs von Visual Studio hinzufügen oder auch Kontextmenüs erweitern. Sogar neue Menüs lassen sich zum Hauptmenü hinzufügen. Wie das geht und wie Sie dann auf Visual Studio zugreifen, zeigen wir Ihnen in diesem Artikel.

Weiterlesen

Visual Studio erweitern: Elemente hinzufügen

Wer Visual Studio erweitern möchte, muss nicht nur die verschiedenen Wege kennen, wir man benutzerdefinierten Code in Visual Studio verfügbar machen kann. Wir müssen uns auch mit dem Objektmodell beschäftigen, dass es uns erlaubt, etwa Elemente zu einem Projekt hinzuzufügen oder bestehende Elemente um Code zu erweitern. Damit legen wir dann die Grundlage für viele Anwendungsfälle – etwa, um von Visual Studio aus ein Entity Data Model auf Basis des Datenmodells einer Access-Datenbank zu erstellen. Im vorliegenden Artikel zeigen wir jedoch erst einmal, wie Sie per DTE-Objektmodell neue Elemente zu einem Visual Basic-Projekt hinzufügen.

Weiterlesen

Entity Framework: Der ChangeTracker

Wenn Sie Daten etwa aus den Tabellen einer Datenbank in ein Entity Data Model geladen haben, finden Sie dort einige Funktionen für den Umgang mit den enthaltenen Daten vor. Ein sehr wichtiges Element ist dabei der ChangeTracker. Auch wenn Sie mit der SaveChanges-Methode automatisch alle Änderungen im Entity Data Model erkennen und diese in die Datenbank übertragen können, so treten doch Fälle auf, in denen Sie zuvor prüfen wollen, welche Änderungen überhaupt im Entity Data Model vorgenommen wurden – und ob diese in die Datenbank übernommen oder vielleicht sogar verworfen werden sollen.

Weiterlesen

Detailformulare mit Combo, Checkbox und Button

Im Artikel “Access zu WPF: Detailformulare mit Textfeldern” schauen wir uns an, wie die programmgesteuerten Möglichkeiten aussehen, um Formulare automatisch als WPF-Fenster oder -Seiten abzubilden. Damit haben wir einfache Detailformulare samt Textfeldern und Datenbindung unter WPF abgebildet. Nun wollen wir einen Schritt weitergehen und uns um weitere Steuer-elemente wie etwa Kombinationsfelder und Kontrollkästchen kümmern. Außerdem wollen wir noch Schaltflächen zum Blättern in den Datensätzen sowie zum Anlegen neuer Datensätze hinzufügen.

Weiterlesen

Access zu WPF: Validierung und Navigation

Im Artikel “Access zu WPF: Detailformulare mit Combo, Checkbox und Button” haben wir gezeigt, wie Sie die in Formularen enthaltenen gebundenen Steuer-elemente wie Kombinationsfelder und Kontrollkästchen sowie Schaltflächen in WPF-Fenster übertragen. In diesem Artikel wollen wir uns ansehen, wie Sie einem WPF-Fenster auf Basis eines Access-Detailformulars eine Validierung und Navigationsschaltflächen hinzufügen. Die notwendigen Techniken haben wir bereits im Artikel “EDM: Blättern in Datensätzen” vorgestellt, nun integrieren wir diese in unsere VBA-Prozedur zum Erstellen des Codes für ein WPF-Fenster mit Navigationsschaltflächen.

Weiterlesen

Bytes im Griff mit der Stream-Klasse: FileStream

Die Stream-Klasse ist die Basisklasse für verschiedene Stream-Klassen wie FileStream oder MemoryStream. Streams bieten die Möglichkeit, Byte-genau schreibend wie lesend auf Daten aus Dateien, dem Arbeitsspeicher oder dem Netzwerk zuzugreifen. Dieser Artikel zeigt, welche Stream-Klassen es gibt und geht genauer auf die FileStream-Klasse ein. Dabei zeigen wir, wie Sie mit dieser Klasse lesend und schreibend auf den Inhalt von Dateien zugreifen und den Inhalt mit Byte-Arrays austauschen.

Weiterlesen

EDM für bestehende Datenbank mit Code First

Wenn Sie ein Entity Data Model mit der Vorlage “Code First aus Datenbank” auf Basis einer bestehenden Datenbank erstellen, haben Sie vielleicht Pech und die Namen der Tabellen der Datenbank und der enthaltenen Felder lauten nicht so, wie Sie die Entitätsklassen, die DbSet-Elemente und die Eigenschaften der Klassen nennen möchten. Dann haben Sie verschiedene Möglichkeiten: Zum Beispiel können Sie die Bezeichnungen in der Datenbank anpassen. Das geht aber oft nicht, weil vielleicht noch andere Frontends auf die gleiche Datenbank zugreifen. Dann haben Sie noch die Möglichkeit, die Bezeichnungen von Datenbank und Entity Data Model so zu mappen, dass beide Seiten zufrieden sind. Wie letzteres gelingt, zeigen wir im vorliegenden Artikel am Beispiel der Südsturm-Datenbank.

Weiterlesen

WPF: DataTrigger und MultiDataTrigger

Um die Eigenschaftswerte von Steuerelementen abhängig von den Werten anderer Steuer-elemente oder auch von Eigenschaften einzustellen, verwenden Sie Data-Trigger oder MultiDataTrigger. Wir schauen uns in diesem Artikel die Grundlagen zu diesen Elementen an und zeigen anhand einiger Beispiele, was beim Praxis-ein-satz zu beachten ist. Dabei betrachten wir auch, wie Sie DataTrigger auf Basis von Eigenschaften im Code behind-Modul des WPF-Objekts verwenden können.

Weiterlesen

Mehrspaltige Kombinationsfelder

Manchmal möchte man mit einem Kombinationsfeld nicht nur den Wert eines Feldes anzeigen, sondern gleich mehrere. Unter Access war das zumindest für die Auswahlliste schnell erledigt – Sie brauchten einfach nur die Eigenschaften Spaltenanzahl und Spaltenbreiten anzupassen. Wenn der Inhalt des Kombinationsfeldes auch die Daten mehrerer Felder liefern sollte, mussten Sie diese per Zeichenkettenfunktion zusammenführen. Wie aber sieht das im WPF-Steuerelement “ComboBox” aus Dieser Artikel zeigt, welche Möglichkeiten dieses Steuer-element für mehrspaltige Einträge bietet.

Weiterlesen