次の方法で共有


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

注釈

が にStoredProcedure設定されている場合CommandType、 のPrepare呼び出しは成功するはずですが、操作が行われません。

を呼び出す Prepare前に、準備する ステートメントの各パラメーターのデータ型を指定します。 可変長データ型を持つパラメーターごとに、 プロパティを Size 必要な最大サイズに設定する必要があります。 Prepare は、これらの条件が満たされない場合にエラーを返します。

注意

Transact-SQL USE <database> ステートメントを実行するか、 メソッドを呼び出してデータベース コンテキストを ChangeDatabase 変更する場合は、 Prepare もう一度呼び出す必要があります。

を呼び出した後に メソッドを ExecutePrepareび出すと、 プロパティで Size 指定された値より大きいパラメーター値は、パラメーターの元の指定サイズに自動的に切り捨てられ、切り捨てエラーは返されません。

出力パラメーター (準備済みかどうかに関係なく) には、ユーザー指定のデータ型が必要です。 可変長データ型を指定する場合は、最大 Sizeも指定する必要があります。

Visual Studio 2010 より前のバージョンでは、 Prepare 例外がスローされました。 Visual Studio 2010 以降、このメソッドは例外をスローしません。

適用対象