SqlCommand.Prepare Yöntem

Tanım

SQL Server örneğinde komutun hazırlanmış bir sürümünü oluşturur.

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

Örnekler

Aşağıdaki örnekte yönteminin kullanımı gösterilmektedir Prepare .

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

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

Açıklamalar

olarak ayarlanırsa CommandTypeStoredProcedureçağrısı Prepare başarılı olmalıdır, ancak bir no-opneden olabilir.

çağrısından Prepareönce, hazırlanacak deyimdeki her parametrenin veri türünü belirtin. Değişken uzunlukta veri türü olan her parametre için, özelliğini gereken en büyük boyuta ayarlamanız Size gerekir. Prepare bu koşullar karşılanmazsa bir hata döndürür.

Uyarı

veritabanı bağlamı Transact-SQL USE <database> deyimi yürütülerek veya yöntemi çağrılarak ChangeDatabase değiştirilirse Prepare , ikinci kez çağrılmalıdır.

çağrısı Executeyaptıktan sonra bir Prepare yöntemi çağırırsanız, özelliği tarafından Size belirtilen değerden daha büyük olan tüm parametre değerleri otomatik olarak parametrenin belirtilen özgün boyutuna kesilir ve kesme hatası döndürülür.

Çıkış parametreleri (hazır olsun veya olmasın) kullanıcı tarafından belirtilen bir veri türüne sahip olmalıdır. Vektör dışında değişken uzunlukta bir veri türü belirtirseniz, maksimum Sizedeğerini de belirtmeniz gerekir.

Vektör veri türleri için Size özelliği yoksayılır. Vektör boyutu türünden ValueSqlVector<T>çıkarılır.

Visual Studio 2010'a Prepare başlamadan önce bir özel durum oluşturdu. Visual Studio 2010'da başlayarak, bu yöntem özel durum oluşturmaz.

Şunlara uygulanır