Share via


SqlCommand.Prepare Metodo

Definizione

Crea una versione preparata del comando in un'istanza di SQL Server.

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

Esempio

Nell'esempio seguente viene illustrato l'uso del metodo Prepare.

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

Commenti

Se CommandType è impostato su StoredProcedure, la chiamata a Prepare deve avere esito positivo, anche se può causare un no-op.

Prima di chiamare Prepare, specificare il tipo di dati di ogni parametro nell'istruzione da preparare. Per ogni parametro con tipo di dati di lunghezza variabile, è necessario impostare la Size proprietà sulla dimensione massima necessaria. Prepare restituisce un errore se queste condizioni non vengono soddisfatte.

Nota

Se il contesto del database viene modificato eseguendo l'istruzione Transact-SQL USE <database> o chiamando il ChangeDatabase metodo, Prepare è necessario chiamare una seconda volta.

Se si chiama un Execute metodo dopo aver chiamato Prepare, qualsiasi valore di parametro maggiore del valore specificato dalla Size proprietà viene troncato automaticamente alla dimensione specificata originale del parametro e non vengono restituiti errori di troncamento.

I parametri di output (se preparati o meno) devono avere un tipo di dati specificato dall'utente. Se si specifica un tipo di dati di lunghezza variabile, è necessario specificare anche il valore massimo Size.

Prima di Visual Studio 2010, Prepare ha generato un'eccezione. A partire da Visual Studio 2010, questo metodo non genera un'eccezione.

Si applica a