Freigeben über


SqlCommand.Prepare Methode

Definition

Erstellt eine vorbereitete Version des Befehls in einer Instanz von SQL Server.

public:
 override void Prepare();
public override void Prepare ();
override this.Prepare : unit -> unit
Public Overrides Sub Prepare ()

Beispiele

Im folgenden Beispiel wird die Verwendung der Prepare-Methode gezeigt.

using System;
using System.Data;
using Microsoft.Data.SqlClient;

namespace SqlPrepareCS
{
    class Program
    {
        static void Main()
        {
            string connectionString = "Persist Security Info=False;Integrated Security=SSPI;database=Northwind;server=(local)";
            SqlCommandPrepareEx(connectionString);
            Console.ReadLine();

        }
        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();
            }
        }

Hinweise

Wenn CommandType auf StoredProcedurefestgelegt ist, sollte der Aufruf von Prepare erfolgreich sein, obwohl dies zu einem No-Op führen kann.

Bevor Sie aufrufen Prepare, geben Sie den Datentyp der einzelnen Parameter in der -Anweisung an, die vorbereitet werden soll. Für jeden Parameter, der über einen Datentyp mit variabler Länge verfügt, müssen Sie die Size -Eigenschaft auf die maximal erforderliche 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, Prepare muss ein zweites Mal aufgerufen werden.

Wenn Sie nach dem Aufrufen Prepareeine Execute Methode aufrufen, 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 Abschneidefehler 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 den Maximalen Sizeangeben.

Vor Visual Studio 2010 Prepare wurde eine Ausnahme ausgelöst. Ab Visual Studio 2010 löst diese Methode keine Ausnahme aus.

Gilt für: