次の方法で共有


SqlCeCommand.Parameters プロパティ

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

SqlCeParameterCollection を取得します。

Public ReadOnly Property Parameters As SqlCeParameterCollection
[C#]
public SqlCeParameterCollection Parameters {get;}
[C++]
public: __property SqlCeParameterCollection* get_Parameters();
[JScript]
public function get Parameters() : SqlCeParameterCollection;

プロパティ値

SQL ステートメントのパラメータ。既定値は空のコレクションです。

解説

CommandTypeText に設定した場合、.NET Compact Framework Data Provider for SQL Server CE では、 SqlCeCommand が SQL ステートメントを呼び出すときに名前付きパラメータを利用してパラメータを渡すことはできません。疑問符 (?) プレースホルダを使用する必要があります。次に例を示します。 SELECT * FROM Customers WHERE CustomerID = ?

パラメータの疑問符プレースホルダの位置と、 SqlCeParameter オブジェクトを SqlCeParameterCollection に追加する順序とを、直接対応させる必要があります。

メモ   コレクションのパラメータが、実行するクエリの要件と一致しない場合は、エラーが発生することがあります。

使用例

[Visual Basic, C#] SqlCeCommand を作成して、 SqlCeParameter オブジェクトの配列を設定する例を次に示します。

 
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 名前空間 | SqlCeParameter