OleDbCommand.Prepare メソッド
アセンブリ: System.Data (system.data.dll 内)


例外の種類 | 条件 |
---|---|
InvalidOperationException | Connection が設定されていません。 または Connection が開いていません。 |

CommandType プロパティを TableDirect に設定したときは、Prepare では何も実行されません。CommandType を StoredProcedure に設定したときは、Prepare の呼び出しには成功しますが、結果が no-op になることがあります。
Prepare を呼び出す前に、準備するステートメントの各パラメータのデータ型を指定します。可変長データ型のパラメータの場合は、Size プロパティに、必要な最大サイズを設定する必要があります。これらの条件が満たされていない場合は、Prepare からエラーが返されます。
Prepare を呼び出した後で Execute メソッドを呼び出すと、Size プロパティに指定した値よりも大きいパラメータ値は、パラメータで指定したサイズに自動的に切り詰められます。このとき、切り捨てエラーは返されません。
出力パラメータは、準備済みかどうかにかかわらず、ユーザー指定のデータ型にする必要があります。可変長データ型を指定する場合は、Size の最大値も指定する必要があります。

OleDbCommand を作成し、接続を開く例を次に示します。この例では、続いて、SQL SELECT ステートメントの文字列とデータ ソースへの接続に使用する文字列を渡して、データ ソースに対するストアド プロシージャを準備します。
Public Sub OleDbCommandPrepare(ByVal connectionString As String) Using connection As OleDbConnection = New _ OleDbConnection(connectionString) connection.Open() ' Create the Command. Dim command As OleDbCommand = 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
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(); } }

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- OleDbCommand.Prepare メソッドのページへのリンク