Udostępnij za pośrednictwem


SqlCommand.Prepare Metoda

Definicja

Tworzy przygotowaną wersję polecenia w wystąpieniu SQL Server.

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

Przykłady

W poniższym przykładzie pokazano użycie Prepare metody .

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

Uwagi

Jeśli CommandType ustawiono wartość StoredProcedure, wywołanie powinno zakończyć się Prepare powodzeniem, chociaż może to spowodować brak operacji.

Przed wywołaniem Preparemetody określ typ danych każdego parametru w instrukcji do przygotowania. Dla każdego parametru, który ma typ danych o zmiennej długości, należy ustawić Size właściwość na wymagany maksymalny rozmiar. Prepare zwraca błąd, jeśli te warunki nie zostaną spełnione.

Uwaga

Jeśli kontekst bazy danych zostanie zmieniony przez wykonanie instrukcji Transact-SQL USE <database> lub wywołanie metody, Prepare należy wywołać metodę ChangeDatabase po raz drugi.

Jeśli wywołasz metodę po wywołaniu Preparemetody , każda wartość parametru większa niż wartość określona przez Size właściwość zostanie automatycznie obcięta Execute do oryginalnego określonego rozmiaru parametru i nie zostaną zwrócone żadne błędy obcięcia.

Parametry wyjściowe (niezależnie od tego, czy są przygotowane), muszą mieć określony przez użytkownika typ danych. Jeśli określisz typ danych o zmiennej długości, musisz również określić maksymalną wartość Size.

Przed programem Visual Studio 2010 Prepare wystąpił wyjątek. Począwszy od programu Visual Studio 2010, ta metoda nie zgłasza wyjątku.

Dotyczy