Freigeben über


SqlCeCommand.Prepare-Methode

Hinweis: Dieser Namespace oder Member bzw. diese Klasse wird nur von .NET Framework, Version 1.1, unterstützt.

Erstellt eine vorbereitete (oder kompilierte) Version des Befehls für die Datenquelle.

Public Overridable Sub Prepare() Implements IDbCommand.Prepare
[C#]
public virtual void Prepare();
[C++]
public: virtual void Prepare();
[JScript]
public function Prepare();

Implementiert

IDbCommand.Prepare

Ausnahmen

Ausnahmetyp Bedingung
InvalidOperationException Connection wurde nicht festgelegt.

– oder –

Connection ist nicht Open.

Hinweise

Wenn die CommandType-Eigenschaft auf TableDirect festgelegt ist, führt Prepare keine Aktion aus.

Geben Sie vor dem Aufruf von Prepare den Datentyp der einzelnen Parameter in der vorzubereitenden Anweisung an. Bei allen Parametern mit einem Datentyp variabler Länge müssen Sie die Size-Eigenschaft auf die maximal benötigte Größe festlegen. Wenn diese Bedingung nicht erfüllt sind, gibt Prepare einen Fehler zurück.

Wenn Sie eine Execute-Methode nach dem Aufruf von Prepare aufrufen, wird jeder Parameterwert, der größer als der durch die Size-Eigenschaft angegebene Wert ist, automatisch auf die ursprünglich angegebene Größe des Parameters gekürzt, und es werden keine Kürzungsfehler zurückgegeben.

Beispiel

 
Public Sub SqlCeCommandPrepare()
    Dim id   As Integer = 20
    Dim desc As String  = "myFirstRegion"

    Dim conn As SqlCeConnection = New SqlCeConnection("Data Source = Northwind.sdf;")
    conn.Open()

    Dim command As SqlCeCommand = conn.CreateCommand()

    ' Create and prepare a SQL statement.
    command.CommandText = "INSERT INTO Region (RegionID, RegionDescription) VALUES (?, ?)"

    ' Note: Even though named parameterized queries are not supported, we still need
    '       to provide unique parameter names so that we can manipulate parameter collection;
    command.Parameters.Add("@id", id)
    command.Parameters.Add("@desc", desc)

    ' Calling Prepare after having set the Commandtext and parameters.
    command.Prepare()
    command.ExecuteNonQuery()

    ' Change parameter values and call ExecuteNonQuery.
    command.Parameters(0).Value = 21
    command.Parameters(1).Value = "mySecondRegion"
    command.ExecuteNonQuery()
End Sub

[C#] 
public void SqlCeCommandPrepareEx() {
    int    id   = 20;
    string desc = "myFirstRegion" ;
 
    SqlCeConnection conn = new SqlCeConnection("Data Source = Northwind.sdf;");
    conn.Open();
    SqlCeCommand command = conn.CreateCommand();

    // Create and prepare a SQL statement.
    command.CommandText = "INSERT INTO Region (RegionID, RegionDescription) VALUES (?, ?)";
    
    // Note: Even though named parameterized queries are not supported, we still need
    //       to provide unique parameter names so that we can manipulate parameter collection;
    command.Parameters.Add( "@id",   id) ;
    command.Parameters.Add( "@desc", desc) ;

    // Calling Prepare after having set the Commandtext and parameters.
    command.Prepare() ;  
    command.ExecuteNonQuery();

    // Change parameter values and call ExecuteNonQuery again.
    command.Parameters[0].Value = 21;
    command.Parameters[1].Value = "mySecondRegion";
    command.ExecuteNonQuery();
}

[C++, JScript] Für C++ oder JScript ist kein Beispiel verfügbar. Klicken Sie zum Anzeigen eines Beispiels für Visual Basic oder C# in der linken oberen Ecke der Seite auf die Schaltfläche "Sprachfilter" Sprachfilter.

Anforderungen

Plattformen: .NET Compact Framework - Windows CE .NET

.NET Framework-Sicherheit:

Siehe auch

SqlCeCommand-Klasse | SqlCeCommand-Member | System.Data.SqlServerCe-Namespace