Compartilhar via


SqlCommand.Prepare Método

Definição

Cria uma versão preparada do comando em uma instância do SQL Server.

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

Exemplos

O exemplo a seguir demonstra o uso do método 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();
            }
        }

Comentários

Se CommandType for definido StoredProcedurecomo , a chamada para Prepare deverá ter êxito, embora possa causar uma não operação.

Antes de chamar , especifique Prepareo tipo de dados de cada parâmetro na instrução a ser preparada. Para cada parâmetro que tem um tipo de dados de comprimento variável, você deve definir a Size propriedade como o tamanho máximo necessário. Prepare retornará um erro se essas condições não forem atendidas.

Observação

Se o contexto do banco de dados for alterado executando a instrução Transact-SQL USE <database> ou chamando o ChangeDatabase método , deverá Prepare ser chamado uma segunda vez.

Se você chamar um Execute método depois de chamar Prepare, qualquer valor de parâmetro maior que o valor especificado pela Size propriedade será truncado automaticamente para o tamanho original especificado do parâmetro e nenhum erro de truncamento será retornado.

Os parâmetros de saída (preparados ou não) devem ter um tipo de dados especificado pelo usuário. Se você especificar um tipo de dados de comprimento variável, também deverá especificar o máximo Size.

Antes do Visual Studio 2010, Prepare gerava uma exceção. A partir do Visual Studio 2010, esse método não gera uma exceção.

Aplica-se a