Поделиться через


SqlCommand.Prepare Метод

Определение

Создает подготовленную версию команды на экземпляре SQL Server.

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

Примеры

В следующем примере иллюстрируется использование метода 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();
            }
        }

Комментарии

Если CommandType для задано значение StoredProcedure, вызов должен завершиться успешно, хотя это может привести к Prepare отключению операции.

Перед вызовом Prepareукажите тип данных каждого параметра в инструкции для подготовки. Для каждого параметра с типом данных переменной длины необходимо задать Size для свойства максимальный необходимый размер. Prepare возвращает ошибку, если эти условия не выполняются.

Примечание

Если контекст базы данных изменяется путем выполнения инструкции Transact-SQL USE <database> или путем вызова ChangeDatabase метода , метод Prepare должен вызываться во второй раз.

При вызове Execute метода после вызова Prepare, любое значение параметра, превышающее значение, указанное свойством Size , автоматически усекается до исходного указанного размера параметра, и ошибки усечения не возвращаются.

Выходные параметры (независимо от того, подготовлены они или нет) должны иметь указанный пользователем тип данных. При указании типа данных переменной длины необходимо также указать максимальное значение Size.

До Visual Studio 2010 Prepare вызывал исключение. Начиная с Visual Studio 2010, этот метод не создает исключение.

Применяется к