次の方法で共有


OleDbCommand.Prepare メソッド

定義

コマンドの準備済み (またはコンパイル済み) のバージョンをデータ ソースに作成します。

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

実装

例外

Connection が設定されていません。

- または -

Connection が開いていません。

次の例では、 を OleDbCommand 作成し、接続を開きます。 次に、SQL SELECT ステートメントである文字列と、データ ソースへの接続に使用する文字列を渡して、データ ソースにストアド プロシージャを準備します。

private static void OleDbCommandPrepare(string connectionString)
{
    using (OleDbConnection connection = new
               OleDbConnection(connectionString))
    {
        connection.Open();

        // Create the Command.
        OleDbCommand command = new OleDbCommand();

        // Set the Connection, CommandText and Parameters.
        command.Connection = connection;
        command.CommandText =
            "INSERT INTO dbo.Region (RegionID, RegionDescription) VALUES (?, ?)";
        command.Parameters.Add("RegionID", OleDbType.Integer, 4);
        command.Parameters.Add("RegionDescription", OleDbType.VarWChar, 50);
        command.Parameters[0].Value = 20;
        command.Parameters[1].Value = "First Region";

        // Call  Prepare and ExecuteNonQuery.
        command.Prepare();
        command.ExecuteNonQuery();

        // Change parameter values and call ExecuteNonQuery.
        command.Parameters[0].Value = 21;
        command.Parameters[1].Value = "SecondRegion";
        command.ExecuteNonQuery();
    }
}
Public Sub OleDbCommandPrepare(ByVal connectionString As String)

    Using connection As OleDbConnection = New _
        OleDbConnection(connectionString)
        connection.Open()

        ' Create the Command.
        Dim command As New OleDbCommand()

        ' Set the Connection, CommandText and Parameters.
        command.Connection = connection
        command.CommandText = _
          "INSERT INTO dbo.Region (RegionID, RegionDescription) VALUES (?, ?);"
        command.Parameters.Add("RegionID", OleDbType.Integer, 4)
        command.Parameters.Add("RegionDescription", OleDbType.VarWChar, 50)
        command.Parameters(0).Value = 20
        command.Parameters(1).Value = "First Region"

        ' Call  Prepare and ExecuteNonQuery.
        command.Prepare()
        command.ExecuteNonQuery()

        ' Change parameter values and call ExecuteNonQuery.
        command.Parameters(0).Value = 21
        command.Parameters(1).Value = "Second Region"
        command.ExecuteNonQuery()
    End Using
End Sub

注釈

プロパティが CommandTypeTableDirectPrepare設定されている場合、何も行われません。 が にStoredProcedure設定されている場合CommandType、 のPrepare呼び出しは成功するはずですが、操作なしが発生する可能性があります。

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

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

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

適用対象

こちらもご覧ください