Sie können mit dem SQL Anywhere-.NET-Datenprovider gespeicherte Prozeduren verwenden. Die ExecuteReader-Methode wird benutzt, um gespeicherte Prozeduren aufzurufen, die eine Ergebnismenge zurückgeben, während die ExecuteNonQuery-Methode benutzt wird, um gespeicherte Prozeduren aufzurufen, die keine Ergebnismenge zurückgeben. Die ExecuteScalar-Methode wird benutzt, um gespeicherte Prozeduren aufzurufen, die nur einen einzelnen Wert zurückgeben.
Wenn Sie eine gespeicherte Prozedur aufrufen, die Parameter erfordert, müssen Sie SAParameter-Objekte erstellen.
Deklarieren und initialisieren Sie ein SAConnection-Objekt.
SAConnection conn = new SAConnection( "Data Source=SQL Anywhere 12 Demo" ); |
Öffnen Sie die Verbindung.
conn.Open(); |
Fügen Sie ein SACommand-Objekt hinzu, um eine SQL-Anweisung zu definieren und auszuführen. Der nachstehende Beispielcode benutzt die CommandType-Eigenschaft, um die Anweisung als gespeicherte Prozedur zu identifizieren.
SACommand cmd = new SACommand( "ShowProductInfo", conn ); cmd.CommandType = CommandType.StoredProcedure; |
Wenn Sie die CommandType-Eigenschaft nicht angeben, müssen Sie ein Fragezeichen als Platzhalter für Parameter verwenden:
SACommand cmd = new SACommand( "call ShowProductInfo(?)", conn ); cmd.CommandType = CommandType.Text; |
Fügen Sie ein SAParameter-Objekt hinzu, das einen Parameter für die gespeicherte Prozedur zum SACommand-Objekt definiert. Sie müssen ein neues SAParameter-Objekt erstellen und zum SACommand-Objekt für jeden Parameter hinzufügen, der von der gespeicherten Prozedur benötigt wird.
SAParameter param = cmd.CreateParameter(); param.SADbType = SADbType.Integer; param.Direction = ParameterDirection.Input; param.Value = 301; cmd.Parameters.Add( param ); |
Weitere Hinweise zum SAParameter-Objekt finden Sie unter SAParameter-Klasse [SQL Anywhere .NET].
Rufen Sie die ExecuteReader-Methode auf, um das SADataReader-Objekt zurückzugeben. Die Get-Methoden werden benutzt, um die Ergebnisse im angegebenen Datentyp zurückzugeben. Das Argument der Get-Methoden ist der Spaltenindex (beginnend mit 0 für Spalte 1).
SADataReader reader = cmd.ExecuteReader(); reader.Read(); int ID = reader.GetInt32(0); string name = reader.GetString(1); string description = reader.GetString(2); decimal price = reader.GetDecimal(6); |
Schließen Sie das SADataReader- und das SAConnection-Objekt.
reader.Close(); conn.Close(); |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |