SqlCommand.Prepare Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Erstellt eine vorbereitete Version des Befehls in einer Instanz von SQL Server.
public:
override void Prepare();
public:
virtual void Prepare();
public override void Prepare();
public void Prepare();
override this.Prepare : unit -> unit
abstract member Prepare : unit -> unit
override this.Prepare : unit -> unit
Public Overrides Sub Prepare ()
Public Sub Prepare ()
Implementiert
Beispiele
Im folgenden Beispiel wird die Verwendung der Prepare-Methode gezeigt.
private static void SqlCommandPrepareEx(string connectionString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlCommand command = new SqlCommand(null, connection);
// Create and prepare an SQL statement.
command.CommandText =
"INSERT INTO Region (RegionID, RegionDescription) " +
"VALUES (@id, @desc)";
SqlParameter idParam = new SqlParameter("@id", SqlDbType.Int, 0);
SqlParameter descParam =
new SqlParameter("@desc", SqlDbType.Text, 100);
idParam.Value = 20;
descParam.Value = "First Region";
command.Parameters.Add(idParam);
command.Parameters.Add(descParam);
// Call Prepare after setting the Commandtext and Parameters.
command.Prepare();
command.ExecuteNonQuery();
// Change parameter values and call ExecuteNonQuery.
command.Parameters[0].Value = 21;
command.Parameters[1].Value = "Second Region";
command.ExecuteNonQuery();
}
}
Private Sub SqlCommandPrepareEx(ByVal connectionString As String)
Using connection As New SqlConnection(connectionString)
connection.Open()
Dim command As New SqlCommand("", connection)
' Create and prepare an SQL statement.
command.CommandText = _
"INSERT INTO Region (RegionID, RegionDescription) " & _
"VALUES (@id, @desc)"
Dim idParam As SqlParameter = _
New SqlParameter("@id", SqlDbType.Int, 0)
Dim descParam As SqlParameter = _
New SqlParameter("@desc", SqlDbType.Text, 100)
idParam.Value = 20
descParam.Value = "First Region"
command.Parameters.Add(idParam)
command.Parameters.Add(descParam)
' Call Prepare after setting the Commandtext and Parameters.
command.Prepare()
command.ExecuteNonQuery()
' Change parameter values and call ExecuteNonQuery.
command.Parameters(0).Value = 21
command.Parameters(1).Value = "Second Region"
command.ExecuteNonQuery()
End Using
End Sub
Hinweise
Wenn CommandType dieser Aufsatz festgelegt StoredProcedureist, sollte der Aufruf Prepare erfolgreich ausgeführt werden, obwohl dies zu einer no-opführen kann.
Geben Sie vor dem Aufrufen Prepareden Datentyp der einzelnen Parameter in der zu erstellenden Anweisung an. Für jeden Parameter mit einem Datentyp variabler Länge müssen Sie die Size Eigenschaft auf die erforderliche maximale Größe festlegen. Prepare gibt einen Fehler zurück, wenn diese Bedingungen nicht erfüllt sind.
Hinweis
Wenn der Datenbankkontext durch Ausführen der Transact-SQL-Anweisung USE <database> oder durch Aufrufen der ChangeDatabase Methode geändert wird, muss sie Prepare ein zweites Mal aufgerufen werden.
Wenn Sie eine Execute Methode nach dem Aufrufen Prepareaufrufen, wird jeder Parameterwert, der größer als der durch die Size Eigenschaft angegebene Wert ist, automatisch auf die ursprüngliche angegebene Größe des Parameters abgeschnitten, und es werden keine Abkürzungsfehler zurückgegeben.
Ausgabeparameter (ob vorbereitet oder nicht) müssen über einen vom Benutzer angegebenen Datentyp verfügen. Wenn Sie einen Datentyp mit variabler Länge angeben, müssen Sie auch das Maximum Sizeangeben.
Vor Visual Studio 2010 Prepare wurde eine Ausnahme ausgelöst. Ab Visual Studio 2010 löst diese Methode keine Ausnahme aus.