英語で読む

次の方法で共有


SqlCommand.Prepare メソッド

定義

SQL Server のインスタンスに対する準備済みのコマンドを作成します。

public override void Prepare();
public void Prepare();

実装

Prepare メソッドの使用例を次に示します。

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 変更する場合は、2 回目の呼び出し Prepare を行う必要があります。

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

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

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

適用対象

製品 バージョン
.NET Core 1.0, Core 1.1, 6 (package-provided), 7 (package-provided), 8 (package-provided), 9 (package-provided), 10 (package-provided)
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0 (package-provided)

こちらもご覧ください