Zum Inhalt springen

So erstellen Sie eine Datenbank mit ADO.NET

Lernen Sie ADO.NET kennen und erstellen Sie eine ADO.NET-Datenbankanwendung „Hello World“. Dieses ADO.NET-Lernprogramm kann für alle Produkte mit ADO.NET-Treibern verwendet werden, einschließlich MySQL, Oracle und Raimas RDM.

Bevor Sie beginnen

Es gibt einige Dinge, die Sie sicherstellen sollten, bevor Sie beginnen. Schauen Sie unten nach:
• Starten einer Eingabeaufforderung unter Windows oder Linux.
• .NET Framework 4.5 oder höher installiert und betriebsbereit.
• Ein Texteditor.
• Ein ADO.NET-Datenbanktreiber, der in Produkten wie z MySQL, PostgreSQL oder RDM.

Die Datenbank für ADO.net

Schritte zum Erstellen Ihrer Anwendung

Ein vorgefertigtes Beispiel mit dem ADO.NET-Treiber von Raima und dem RDM-Datenbankverwaltungssystem finden Sie in der Demo-Bereich. Wählen Sie das Windows- oder Linux-Paket „Hello World“ aus, das Ihrem Betriebssystem entspricht. Sie können die anderen Beispiele nach Abschluss dieses Lernprogramms auswählen, da sie die Verwendung von Datenbanken über ADO.NET immer komplexer machen.

Installieren Sie das Paket in einem neuen lokalen Verzeichnis. Als Referenz nennen wir dieses Verzeichnis "/HelloWorld_ADO.NET". Der vollständige Quellcode für HelloWorldADO.cs ist sichtbar Hier.

Schritt 1 Öffnen Sie eine Eingabeaufforderung

Wechseln Sie in das Verzeichnis, in dem Sie die Dateien für das Beispiel installiert haben.

Schritt 2 Anzeigen Ihrer CS-Datei

Zeigen Sie mit Ihrem Texteditor die Datei „HelloWorldADO.NET.java“ an. Alternativ nutzen Sie unsere Online-Kopie.

Schritt 3 Anzeigen Ihrer Beispielklasse

Ihre Klasse kann denselben Namen enthalten wie die CS-Datei, die die Klasse enthält. Es sollte wie folgt aussehen:

Namespace HelloWorldApplication {
Klasse HelloWorldADO.NET {

}}
}}

In diesem Beispiel wird alles in dieser Klasse ausgeführt.

Schritt 4 Untersuchen der Hauptmethode

Die Hauptmethode ist der Einstiegspunkt für Ihr Programm. Für dieses einfache Beispiel verwenden wir nur eine CS-Datei. Daher enthält die Klasse die unten gezeigte Hauptmethode. Wir werden keine Argumente für dieses Programm akzeptieren.
statische Leere main () {

}}

Schritt 5 Erstellen und Initialisieren Ihres Verbindungsobjekts

Sie initialisieren Ihr Verbindungsobjekt, bevor Sie auf eine der darin enthaltenen Methoden zugreifen können.
Es wird empfohlen, für jedes Objekt, das Sie initialisieren, einen neuen Try-Block zu starten. Wenn Sie mit dem Objekt fertig sind, fügen Sie einfach einen finally-Block hinzu, der die entsprechende close () -Methode ausführt. Der äußerste Block enthält Ihren catch-Block, um alle möglichen Ausnahmen zu behandeln. Dies ist mit dem vollständigen Code leichter zu erkennen.
* Hinweis: Der Objekttyp ändert sich je nach verwendetem Treiber. In diesem Fall wird der RDM ADO.NET-Treiber verwendet, sodass wir ein RdmConnection-Objekt haben.
RdmConnection connection = new RdmConnection ("host = localhost; database = hello_worldADO");
Versuchen {

}}
} catch (Ausnahme Ausnahme) {

} schließlich {
Conn.close ();
}}

Schritt 6 Erstellen Ihres Anweisungsobjekts

Die neu erstellte Verbindungsobjektverbindung enthält eine Methode namens createCommand (), die ein RdmCommand-Objekt zurückgibt. Sie werden dieses Objekt dann mit dieser Verbindung zur Datenbank verwenden.
RdmCommand command = connection.createCommand ();
Versuchen {

} schließlich {
command.close ();
}}

Schritt 7 Führen Sie Anweisungen aus, um die Datenbank zu erstellen oder zu öffnen

Mit dem soeben erstellten RdmCommand-Objektbefehl können Sie je nach Art der Anweisung, die Sie ausführen möchten, verschiedene Methoden ausführen. Wenn Sie beispielsweise eine SQL-Anweisung wie "OPEN database_name" oder "DELETE * FROM table_name" ausführen möchten, führen Sie eine command.executeNonQuery () -Methode aus. Sie können executeNonQuery () sehen, das im folgenden Code-Snippet verwendet wird. In diesem Beispiel erstellen wir die Datenbank programmgesteuert. In diesem Beispiel ist die Datenbank trivial und besteht aus einer einzelnen Tabelle mit dem Namen hello_table, die eine einzelne Zeichenspalte mit dem Namen foo enthält. Die Sequenz erstellt eine Tabelle, falls sie noch nicht vorhanden ist, oder öffnet sie einfach, wenn sie vorhanden ist.
* Hinweis: Diese Datenbank wird programmgesteuert erstellt. Es gibt Tools, mit denen Sie Ihre Datenbank getrennt von Ihrem Programm erstellen können. Sehen Sie sich eine schnelle "So erstellen Sie eine Datenbank mit SQL" Tutorial dazu.

Versuchen {
RdmTransaction rdmtrans = connection.BeginTransaction ();
command.CommandText = "CREATE TABLE hello_table (f00 char (31))";
command.executeNonQuery ();
rdmtrans.commit (); // Jetzt existiert die Datenbank physisch
} catch (Ausnahme Ausnahme) {
// Wir sind hier, wenn eine Datenbank vorhanden ist
}}

Schritt 8 Einfügen einer neuen Zeile mit dem Anweisungsobjekt

Um eine einzelne Zeile in diese Datenbank einzufügen, verwenden wir die ExecuteNonQuery () -Methode, die für vollständige (unvorbereitete) INSERT-, UPDATE- oder DELETE-Anweisungen verwendet wird. Dies startet implizit eine Transaktion, bei der es sich um eine Einheit der Aktualisierungsarbeit handelt, die atomar auf die Datenbank angewendet wird. Ein INSERT wird unten mit einer Parameterbindung gezeigt, aber an dieser Stelle könnten weitere hinzugefügt werden.
command.CommandText = "INSERT INTO hello_table (f00) VALUES (?)";
command.CommandText = insertString;
RdmParameter-Parameter = neuer RdmParameter ();
parameter.RdmType = RdmType.AnsiString;
parameter.Direction = ParameterDirection.Input;
parameter.Value = "Hallo Welt!";
command.Parameters.Add (Parameter);
command.ExecuteNonQuery ();

Schritt 9 Änderungen übernehmen

Damit Ihre Änderungen in der Datenbank abgeschlossen werden, müssen Sie ein Transaktions-Commit durchführen. In ADO.NET erfolgt dies über eine Methode im RdmTransaction-Objekt. Die Methode, die wir verwenden werden, ist RdmTransaction.Commit (). Damit werden alle Änderungen abgeschlossen, die Sie während einer Transaktion vorgenommen haben.
rdmtrans.Commit (); // Übernimmt alle Änderungen

Schritt 10 Erstellen Ihres Ergebnismengenobjekts (Abrufen von Daten aus der Datenbank)

Wenn Sie in ADO.NET Daten aus der Datenbank abrufen möchten, führen Sie eine SQL SELECT-Anweisung mit Ihrem Befehlsobjekt mit einer Ausführungsmethode aus, die ein Ergebnismengenobjekt zurückgibt. Diese Methode heißt Command.executeReader (). Dies bedeutet, dass die angegebene Abfrage ausgeführt wird und die Abfrageergebnisse im angegebenen Reader zurückgegeben werden.
command.CommandText = "SELECT * FROM hello_table";
RdmDataReader reader = command.ExecuteReader ();
Versuchen {

} schließlich {
reader.Close ();
}}

Schritt 11 Zugriff auf die Ergebnismenge

Um auf alle Daten in Ihrer Ergebnismenge zugreifen zu können, müssen Sie diese durchlaufen. In der Ergebnismenge wird eine Methode bereitgestellt, mit der überprüft werden kann, ob das nächste Ergebnis in der Ergebnismenge NULL ist, dh keine Daten mehr. Wenn die Methode reader.Read () TRUE zurückgibt, befinden sich Daten in der Datenbank, die Sie aus Ihrer Ergebnismenge abrufen können.
Um auf die Daten in der Ergebnismenge zuzugreifen, müssen Sie eine Getter-Methode ausführen. Es stehen zahlreiche Getter-Methoden zur Verfügung, um den spezifischen Datentyp aus der Ergebnismenge abzurufen. In diesem Beispiel möchten wir eine Zeichenfolge, daher verwenden wir die reader.getString () -Methode, wobei der Parameter die Spalte ist (erste / einzige Spalte ist 0), aus der Sie abrufen.
Schauen Sie sich den folgenden Code an, um ein Beispiel dafür zu sehen, wie dies getan werden kann.
while (reader.Read ()! = false)
{
Console.WriteLine (reader.GetString (0));
}}

Diese Schleife ruft alle Zeilen in der Ergebnismenge ab. Wenn dieses Beispielprogramm zum ersten Mal ausgeführt wird, gibt es nur eine Zeile. Wenn Sie es mehrmals ausführen, finden Sie für jedes Ausführen eine Zeile.

Schritt 12 Freigabe von Ressourcen

Hier werden Sie alle oben verwendeten Ressourcen freigeben. In diesem Fall sind Ihre Ressourcen jedes Objekt, das Sie oben verwendet haben, und sind Ihre Verbindungsobjekt-, Anweisungs- und Ergebnismengenobjekte. Für jeden verschachtelten try-Block haben Sie einen finally-Block, der die entsprechende close-Methode ausführt. Diese Anweisungen wurden im obigen Kontext gezeigt, aber hier sind die Bereinigungsaufrufe nacheinander aus dem Code.
} schließlich {
reader.Close ();
}}
} schließlich {
command.Close ();
}}
} catch (Ausnahme Ausnahme) {
Console.WriteLine ("Ausnahme:" + Ausnahme.ToString ());
} schließlich {
connection.Close ();
}}

Schritt 13 Final Catch und schließlich Block

Der allerletzte Block enthält sowohl einen catch-Block als auch einen finally-Block. Der catch-Block bestimmt, was zu tun ist, wenn im obigen Code eine Ausnahme ausgelöst wurde. In diesem Fall reicht es aus, nur die Ausnahme zum Standardausgang anzuzeigen. Der finally-Block wird unabhängig von einer ausgelösten Ausnahme ausgeführt. Hier werden wir unser Verbindungsobjekt freigeben. Wenn in diesem Beispiel Ihr Connection-Objekt aus irgendeinem Grund eine Ausnahme auslöst, wird es aus der Methode "geworfen". In einer normalen Situation können Sie entweder einen weiteren try catch-Block hinzufügen oder dieses Programm als separate Methode deklarieren und an anderer Stelle behandeln.
} catch (Ausnahme Ausnahme) {
WriteLine ("Ausnahme:" + Ausnahme.ToString ());
} schließlich {
connection.Close ();
}}

Schritt 14 Kompilieren Sie Ihre Anwendung

Wenn Ihr ADO.NET korrekt installiert ist, sollten Sie Zugriff auf das c# namens csc haben. Zum Kompilieren müssen Sie den csc-Compiler verwenden. Das Format sieht folgendermaßen aus:
csc {main_class.cs (Einstiegspunkt zum Programm)}
In diesem Fall würden Sie Folgendes eingeben:
csc HelloWorldADO.cs
Sie sollten keine Warnungen sehen und nach Abschluss wird eine .class-Datei generiert. Ihr Verzeichnis sollte enthalten:
HelloWorldADO.cs
HelloWorldADO.NET.a

Schritt 15 Ausführen des Programms

Das Ausführen des Programms ist so einfach wie die Eingabe von "java {Name der ausführbaren Datei}". In diesem Fall hätten Sie "HelloWorldADO", da dies der Einstiegspunkt für Ihr Programm ist. Wenn alles wie erwartet funktioniert, sollte in einer Windows-Eingabeaufforderung Folgendes angezeigt werden:

Getan!

Herzliche Glückwünsche! Sie haben gerade Ihre erste ADO.NET-Anwendung fertiggestellt. Nachdem Sie mit ADO.NET „auf die Festplatte und zurück“ gegangen sind, werden Sie möglicherweise aufgefordert, einige komplexere Beispiele zu untersuchen. Der Rest der ADO.NET-Demos wird zu einem schrittweisen Tutorial, das Transaktions-Commits und -Rollbacks sowie Mehrwegebeziehungen zwischen Tabellen enthält. Jede Probe sollte schnell, informativ und vollständig verfügbar sein, wenn Sie fertig sind.