EDM: Der Code First-Ansatz

In den bisherigen Ausgaben haben wir immer mit dem Database First-Ansatz gearbeitet, das heißt, dass wir unser Entity Data Model auf Basis einer bestehenden Datenbank im SQL Server oder SQLite generiert haben. Das geht auch andersherum: Sie erstellen ein paar Klassen, geben eine Verbindungszeichenfolge an und beim ersten Versuch, auf die Daten der Datenbank zuzugreifen, erstellt die Anwendung automatisch die Datenbank im angegebenen SQL Server. Wie das gelingt und wie die Klassen und die Verbindungszeichenfolge aussehen müssen, erfahren Sie in diesem Beitrag.

Weiterlesen

Absender von Outlook-Mails einstellen

Im Artikel “E-Mails mit Outlook verschicken” haben wir gezeigt, wie Sie von einer .NET-Anwendung aus die Daten für eine E-Mail zusammenstellen und diese dann per Outlook verschicken können – unter anderem mit Empfänger, CC, BCC, Anlagen oder Priorität. Was noch fehlt, ist die Absenderadresse. Diese braucht man grundsätzlich nicht explizit einzustellen, denn Outlook verwendet dann die Adresse des Standardkontos von Outlook (vorausgesetzt, Sie haben mehrere Konten). Wenn Sie jedoch eine Mail mit einem anderen Konto als dem Standardkonto verschicken wollen, wird es kompliziert. Die Lösung für diese Aufgabe finden Sie im vorliegenden Artikel.

Weiterlesen

Webservice mit C# am Beispiel von DHL-Etiketten

Mit Webservices lässt sich der Abruf von Daten bestimmter Anbieter aus dem Internet stark vereinfachen. Während Sie etwa zum Herunterladen eines Versandetiketts einige Minuten investieren müssen, um die Adressen und weitere Sendungsdaten aus einer Kundendatenbank in ein Onlineformular zu übertragen, könnten Sie das auch per Mausklick erledigen. Voraussetzung sind einige Zeilen Code und die Registrierung beim entsprechenden Webservice. In diesem Fall schauen wir uns das am Beispiel von Versandetiketten des Paketdienstleisters DHL an.

Weiterlesen

Basics: PropertyChanged

Unter Access/VBA haben Sie Tabellen direkt an Formulare und Steuerelemente gebunden, Änderungen an den Daten wurden regelmäßig auch im Frontend aktualisiert. Unter C#/WPF sieht das ganz anders aus: Hier landen die Daten aus der Tabelle erstmal in Objekten und deren Eigenschaften werden mit Steuerelementen wie TextBox, ComboBox und so weiter angezeigt. Damit sich eine Änderungen am zugrunde liegenden Objekte auch in der Benutzeroberfläche manifestiert, sind ein paar zusätzliche Handgriffe nötig.

Weiterlesen

EDM: Kundendetails verwalten

In unserer Lösung zur Verwaltung von Bestellungen spielt die Kundenverwaltung natürlich eine große Rolle. In diesem Artikel wollen wir uns ansehen, wie wir einen neuen Kunden anlegen oder einen vorhandenen Kunden bearbeiten können – eingebettet natürlich in unser Hauptfenster, dass wir im Artikel “Kunden verwalten” beleuchten. Daher benötigen wir auch kein eigenes Fenster, um die Kundendetails anzuzeigen, sondern erstellen ein Page-Objekt mit den relevanten Informationen. Dieses nutzen wir dann sowohl zum Anlegen neuer Kunden als auch zum Bearbeiten vorhandener Kunden.

Weiterlesen

Die MessageBox-Klasse

Die MessageBox-Klasse unter C# bietet ähnliche Features wie die von VBA bekannte MsgBox-Funktion. Allerdings ist es erstens eine Klasse und zweitens kann sie natürlich doch noch einiges mehr als das VBA-Pendant. Dieser Artikel zeigt, wie Sie Meldungsfenster unter C# anzeigen und diese mit Texten, Schaltflächen und anderen Elementen ausstatten. Schließlich interessiert uns auch noch, wie wir die vom Benutzer angeklickten Schaltflächen und somit die Antworten auf die in der Meldung gestellten Fragen auswerten können.

Weiterlesen

EDM: Kombinationsfelder erweitern

Im Artikel “Lookup-Kombinationsfelder” zeigen wir, wie Sie eine per Drag and Drop aus dem Datenquellen-Bereich hinzugefügte Entität mit einem Kombinationsfeld versehen, mit dem Sie die Daten einer Lookup-Tabelle auswählen können. Dies wollen wir nun noch erweitern, und zwar um die Möglichkeit der Eingabe neuer Werte für die Lookup-Tabelle direkt über das Kombinationsfeld. Dazu nutzen wir ein neues Fenster, das die Daten der Tabelle Artikel anzeigt – und deren Kategorie per Kombinationsfeld auswählt.

Weiterlesen

SQL Server-Interaktion mit dem Profiler verfolgen

Wenn Sie per ADO.NET, LINQ to Entities oder anderen Zugriffstechniken auf die Datenbank eines SQL Servers zugreifen, werden die von Ihnen programmierten Codezeilen meist im Hintergrund in SQL-Befehle umgewandelt. In vielen Fällen kann es interessant sein, was dort tatsächlich geschieht. Ein geeignetes Werkzeug ist der SQL Server Profiler, der zwar demnächst ausläuft, aber eine schnelle Möglichkeit der Nachverfolgung liefert.

Weiterlesen

Von VBA zu C#: Fehlerbehandlung

Nur wenige Access-Programmierer statten ihre Anwendungen mit einer ordentlichen Fehlerbehandlung aus. Für viele ist dies ein leidiges Thema. Die Fehlerbehandlung sorgt im Optimalfall sowohl unter VBA als auch unter C# dafür, dass eine Anwendung stabiler wird und nach dem Auftreten von Laufzeitfehlern nicht unerwartet reagiert oder sogar abstürzt. Während es unter VBA nur wenige Konstrukte gibt, um eine Fehlerbehandlung zu implementieren, bietet C# schon eine Menge mehr. Dieser Artikel liefert eine Einführung und zeigt, wie Sie die von VBA gewohnten Techniken unter C# einsetzen.

Weiterlesen

WPF-Controls: Kombinationsfelder

In den ersten Ausgaben des DATENBANKENTWICKLERs haben Sie bereits einige Steuerelemente kurz kennen gelernt. In den folgenden Ausgaben wird sich dies ändern. Im vorliegenden Artikel schauen wir uns das ComboBox-Steuerelement an, das Sie als Access-Entwickler ja vielleicht aus dem Eff-Eff kennen. Unter WPF läuft aber gewöhnlich alles etwas anders, sodass wir hier mit den Grundlagen einsteigen und uns dann Schritt für Schritt Themen wie der Datenbindung et cetera widmen. Außerdem dürfen wir vorwegnehmen, dass sich hier einige Möglichkeiten mehr ergeben …

Weiterlesen