Freigeben über


SqlCeCommand.Prepare-Methode

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

Namespace: System.Data.SqlServerCe
Assembly: System.Data.SqlServerCe (in system.data.sqlserverce.dll)

Syntax

'Declaration
Public Overrides Sub Prepare
'Usage
Dim instance As SqlCeCommand

instance.Prepare
public override void Prepare ()
public:
virtual void Prepare () override
public void Prepare ()
public override function Prepare ()

Ausnahmen

Ausnahmetyp Bedingung

InvalidOperationException

Die Connection-Eigenschaft wurde nicht festgelegt.

- oder -

Die Connection-Eigenschaft ist nicht Open.

Hinweise

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

Geben Sie vor dem Aufruf der Prepare-Methode 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 Bedingungen nicht erfüllt sind, gibt die Prepare-Methode einen Fehler zurück.

Wenn Sie eine Execute-Methode nach dem Aufruf der Prepare-Methode 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

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

Dim command As SqlCeCommand = conn.CreateCommand()

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

Dim param As SqlCeParameter = Nothing

' NOTE:
' For optimal performance, make sure you always set the parameter
' type and the maximum size - this is especially important for non-fixed
' types such as NVARCHAR or NTEXT; In case of named parameters, 
' SqlCeParameter instances do not need to be added to the collection
' in the order specified in the query; If however you use ? as parameter
' specifiers, then you do need to add the parameters in the correct order
'
param = New SqlCeParameter("@id", SqlDbType.Int)
command.Parameters.Add(param)

param = New SqlCeParameter("@desc", SqlDbType.NVarChar, 100)
command.Parameters.Add(param)

command.Parameters("@desc").Size = 100

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

' Execute the SQL statement
'
command.ExecuteNonQuery()

' Change parameter values and call ExecuteNonQuery again
'
command.Parameters(0).Value = 21
command.Parameters(1).Value = "mySecondRegion"
command.ExecuteNonQuery()
SqlCeConnection conn = new SqlCeConnection("Data Source = MyDatabase.sdf;");
conn.Open();

SqlCeCommand command = conn.CreateCommand();

// Create and prepare a SQL statement
//
command.CommandText = "INSERT INTO Region (RegionID, RegionDescription) VALUES (@id, @desc)";

SqlCeParameter param = null;

// NOTE:
// For optimal performance, make sure you always set the parameter
// type and the maximum size - this is especially important for non-fixed
// types such as NVARCHAR or NTEXT; In case of named parameters, 
// SqlCeParameter instances do not need to be added to the collection
// in the order specified in the query; If however you use ? as parameter
// specifiers, then you do need to add the parameters in the correct order
//
param = new SqlCeParameter("@id", SqlDbType.Int);
command.Parameters.Add(param);

param = new SqlCeParameter("@desc", SqlDbType.NVarChar, 100);
command.Parameters.Add(param);

command.Parameters["@desc"].Size = 100;

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

// Execute the SQL statement
//
command.ExecuteNonQuery();

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

.NET Framework-Sicherheit

  • Volle Vertrauenswürdigkeit für den unmittelbaren Aufrufer. Dieser Member kann von nur teilweise vertrauenswürdigem Code nicht verwendet werden. Weitere Informationen finden Sie unter .

Plattformen

Windows CE, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows XP Professional x64 Edition, Windows XP SP2

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

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