Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - Programmierung » SQL Anywhere Datenzugriff-APIs » Praktische Einführung: SQL Anywhere .NET-Datenprovider verwenden » Beispielcode "Simple" verwenden

 

Zum Verständnis des Beispielprojekts "Simple"

In diesem Abschnitt werden einige Kernfunktionen des SQL Anywhere .NET-Datenproviders anhand der entsprechenden Abschnitte des Beispielcodes "Simple" erläutert. Der Beispielcode "Simple" verwendet die SQL Anywhere-Beispieldatenbank demo.db, die sich in Ihrem SQL Anywhere-Beispielverzeichnis befindet.

Weitere Hinweise zum Speicherort des SQL Anywhere-Beispielverzeichnisses finden Sie unter Beispielverzeichnis.

Hinweise zur Beispieldatenbank und zu den darin enthaltenen Tabellen sowie zu ihren Beziehungen untereinander finden Sie unter SQL Anywhere-Beispieldatenbank.

In diesem Abschnitt wird der Beispielcode ausschnittsweise beschrieben. Eine vollständige Beschreibung ist hier nicht enthalten. Den gesamten Beispielcode finden Sie im Beispielprojekt unter Beispielverzeichnis\SQLAnywhere\ADO.NET\SimpleWin32.

Steuerelemente deklarieren   Das folgende Codefragment deklariert eine Schaltfläche mit der Bezeichnung btnConnect und ein Listenfeld mit der Bezeichnung listEmployees.

private System.Windows.Forms.Button btnConnect;
private System.Windows.Forms.ListBox listEmployees;

Verbindung zur Datenbank herstellen   Die btnConnect_Click-Methode deklariert und initialisiert ein SAConnection-Verbindungsobjekt.

private void btnConnect_Click(object sender,
   System.EventArgs e)
   SAConnection conn = new SAConnection(
    "Data Source=SQL Anywhere 11 Demo;UID=DBA;PWD=sql" );

Das SAConnection-Objekt stellt mithilfe der Verbindungszeichenfolge eine Verbindung zur SQL Anywhere-Beispieldatenbank her, wenn die Open-Methode aufgerufen wird.

conn.Open();

Weitere Hinweise zum SAConnection-Objekt finden Sie unter SAConnection-Klasse.

Abfrage definieren   Eine SQL-Anweisung wird mithilfe eines SACommand-Objekts ausgeführt. Der folgende Code deklariert und erstellt mit dem SACommand-Konstruktor ein Befehlsobjekt. Dieser Konstruktor akzeptiert die auszuführende Abfrage in Form einer Zeichenfolge zusammen mit dem SAConnection-Objekt, das die Verbindung repräsentiert, auf der die Abfrage ausgeführt wird.

SACommand cmd = new SACommand(
     "SELECT Surname FROM Employees", conn );

Weitere Hinweise zum SACommand-Objekt finden Sie unter SACommand-Klasse.

Ergebnisse anzeigen   Die Ergebnisse der Abfrage werden mit einem SADataReader-Objekt abgefragt. Der folgende Code deklariert und erstellt mit dem ExecuteReader-Konstruktor ein SADataReader-Objekt. Dieser Konstruktor ist ein Mitglied des SACommand-Objekts "cmd", das zuvor deklariert wurde. ExecuteReader sendet den Befehlstext zur Ausführung an die Verbindung und erstellt einen SADataReader.

SADataReader reader = cmd.ExecuteReader();

Der nachstehende Code führt einen Schleifendurchlauf durch die Zeilen im SADataReader-Objekt durch und fügt sie in das Listenfeld-Steuerelement ein. Sobald die Read-Methode aufgerufen wird, erhält das DataReader-Objekt eine weitere Zeile aus der Ergebnismenge. Für jede gelesene Zeile wird ein neues Element in das Listenfeld eingefügt. Der DataReader verwendet die GetString-Methode mit dem Argument 0, um die erste Spalte aus der Ergebnismengenzeile abzurufen.

listEmployees.BeginUpdate();
while( reader.Read() ) {
     listEmployees.Items.Add( reader.GetString( 0 ) );
}
listEmployees.EndUpdate();

Weitere Hinweise zum SADataReader-Objekt entnehmen Sie dem Abschnitt SADataReader-Klasse.

Abschluss   Das nachstehende Codefragment am Ende der Methode schließt die DataReader- und Connection-Objekte.

reader.Close();
conn.Close();

Fehlerbehandlung   Alle Fehler, die während der Ausführung auftreten und aus SQL Anywhere .NET-Datenprovider-Objekten stammen, werden in einem Fenster angezeigt. Der nachstehende Beispielcode fängt den Fehler ab und zeigt die dazugehörige Meldung an:

catch( SAException ex ) {
    MessageBox.Show( ex.Errors[0].Message );
}

Weitere Hinweise zum SAException-Objekt finden Sie im Abschnitt SAException-Klasse.