次の方法で共有


SqlCeCommand.Prepare メソッド

メモ : この名前空間、クラス、およびメンバは、.NET Framework Version 1.1 だけでサポートされています。

データ ソースに対する準備済み (コンパイル済み) のコマンドを作成します。

Public Overridable Sub Prepare() Implements IDbCommand.Prepare
[C#]
public virtual void Prepare();
[C++]
public: virtual void Prepare();
[JScript]
public function Prepare();

実装

IDbCommand.Prepare

例外

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

または

ConnectionOpen ではありません。

解説

CommandType プロパティを TableDirect に設定したときは、 Prepare では何も実行されません。

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

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

使用例

 
Public Sub SqlCeCommandPrepare()
    Dim id   As Integer = 20
    Dim desc As String  = "myFirstRegion"

    Dim conn As SqlCeConnection = New SqlCeConnection("Data Source = Northwind.sdf;")
    conn.Open()

    Dim command As SqlCeCommand = conn.CreateCommand()

    ' Create and prepare a SQL statement.
    command.CommandText = "INSERT INTO Region (RegionID, RegionDescription) VALUES (?, ?)"

    ' Note: Even though named parameterized queries are not supported, we still need
    '       to provide unique parameter names so that we can manipulate parameter collection;
    command.Parameters.Add("@id", id)
    command.Parameters.Add("@desc", desc)

    ' Calling Prepare after having set the Commandtext and parameters.
    command.Prepare()
    command.ExecuteNonQuery()

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

[C#] 
public void SqlCeCommandPrepareEx() {
    int    id   = 20;
    string desc = "myFirstRegion" ;
 
    SqlCeConnection conn = new SqlCeConnection("Data Source = Northwind.sdf;");
    conn.Open();
    SqlCeCommand command = conn.CreateCommand();

    // Create and prepare a SQL statement.
    command.CommandText = "INSERT INTO Region (RegionID, RegionDescription) VALUES (?, ?)";
    
    // Note: Even though named parameterized queries are not supported, we still need
    //       to provide unique parameter names so that we can manipulate parameter collection;
    command.Parameters.Add( "@id",   id) ;
    command.Parameters.Add( "@desc", desc) ;

    // Calling Prepare after having set the Commandtext and parameters.
    command.Prepare() ;  
    command.ExecuteNonQuery();

    // Change parameter values and call ExecuteNonQuery again.
    command.Parameters[0].Value = 21;
    command.Parameters[1].Value = "mySecondRegion";
    command.ExecuteNonQuery();
}

[C++, JScript] C++ および JScript のサンプルはありません。Visual Basic および C# のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: .NET Compact Framework - Windows CE .NET

.NET Framework セキュリティ:

参照

SqlCeCommand クラス | SqlCeCommand メンバ | System.Data.SqlServerCe 名前空間