In diesem Abschnitt werden einige Kernfunktionen des SQL Anywhere .NET-Datenproviders vorgestellt, indem entsprechende Abschnitte des Beispielcodes "Table Viewer" genauer betrachtet werden. Das Projekt "Table Viewer" benutzt 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. Wenn Sie sich den Beispielcode in seiner Gesamtheit ansehen möchten, öffnen Sie das Beispielprojekt Beispielverzeichnis\SQLAnywhere\ADO.NET\TableViewer.
Steuerelemente deklarieren Das nachstehende Codefragment deklariert zwei Label namens label1 und label2, ein Textfeld namens txtConnectString, eine Schaltfläche namens btnConnect, ein Textfeld namens txtSQLStatement, eine Schaltfläche namens btnExecute und ein Datenraster namens dgResults.
private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox txtConnectString; private System.Windows.Forms.Label label2; private System.Windows.Forms.Button btnConnect; private System.Windows.Forms.TextBox txtSQLStatement; private System.Windows.Forms.Button btnExecute; private System.Windows.Forms.DataGrid dgResults; |
Verbindungsobjekt deklarieren Ein nicht initialisiertes SQL Anywhere-Verbindungsobjekt wird mit dem Typ SAConnection deklariert. Für eine eindeutige Verbindung mit einer SQL Anywhere-Datenquelle wird das SAConnection-Objekt verwendet.
private SAConnection _conn; |
Weitere Hinweise zur SAConnection-Klasse finden Sie unter SAConnection-Klasse.
Herstellen einer Verbindung zur Datenbank Die Text-Eigenschaft des txtConnectString-Objekts hat den Standardwert "Data Source=SQL Anywhere 12 Demo". Dieser Wert kann vom Anwendungsbenutzer überschrieben werden, indem er im txtConnectString-Textfeld einen neuen Wert eingibt. Sie können sehen, wie dieser Standardwert festgelegt ist, indem Sie in TableViewer.cs den Bereich bzw. Abschnitt mit der Bezeichnung "Windows Form Designer Generated Code" öffnen. In diesem Abschnitt befindet sich die folgende Codezeile.
this.txtConnectString.Text = "Data Source=SQL Anywhere 12 Demo"; |
Weiter unten verwendet das SAConnection-Objekt die Verbindungszeichenfolge, um eine Verbindung zu einer Datenbank herzustellen. Der folgende Code erstellt mithilfe des SAConnection-Konstruktors mit der Verbindungszeichenfolge ein neues Verbindungsobjekt. Anschließend wird die Verbindung mit der Open-Methode eingerichtet.
_conn = new SAConnection( txtConnectString.Text ); _conn.Open(); |
Weitere Hinweise zum Konstruktor SAConnection finden Sie unter SAConnection-Konstruktor.
Abfrage definieren Die Text-Eigenschaft des txtSQLStatement-Objekts hat den Standardwert "SELECT * FROM Employees". Dieser Wert kann vom Anwendungsbenutzer überschrieben werden, indem er im txtSQLStatement-Textfeld einen neuen Wert eingibt.
Die 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( txtSQLStatement.Text.Trim(), _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 dr = cmd.ExecuteReader(); |
Das folgende Codefragment stellt eine Verbindung des SADataReader-Objekts mit dem DataGrid-Objekt her, sodass die Ergebnisspalten im Fenster angezeigt werden. Anschließend wird das SADataReader-Objekt geschlossen.
dgResults.DataSource = dr; dr.Close(); |
Weitere Hinweise zum SADataReader-Objekt entnehmen Sie dem Abschnitt SADataReader-Klasse.
Fehlerbehandlung Wenn bei der Verbindungsherstellung oder beim Ausfüllen des Kombinationsfeld Tables durch die Anwendung ein Fehler auftritt, fängt der nachstehende Programmcode den Fehler ab und zeigt eine Fehlermeldung an:
try { _conn = new SAConnection( txtConnectString.Text ); _conn.Open(); SACommand cmd = new SACommand( "SELECT table_name FROM SYS.SYSTAB where creator = 101", _conn ); SADataReader dr = cmd.ExecuteReader(); comboBoxTables.Items.Clear(); while ( dr.Read() ) { comboBoxTables.Items.Add( dr.GetString( 0 ) ); } dr.Close(); } catch( SAException ex ) { MessageBox.Show( ex.Errors[0].Source + " : " + ex.Errors[0].Message + " (" + ex.Errors[0].NativeError.ToString() + ")", "Failed to connect" ); } |
Weitere Hinweise zum SAException-Objekt finden Sie im Abschnitt SAException-Klasse.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |