OleDbCommand.Parameters プロパティ
OleDbParameterCollection を取得します。
Public ReadOnly Property Parameters As OleDbParameterCollection
[C#]
public OleDbParameterCollection Parameters {get;}
[C++]
public: __property OleDbParameterCollection* get_Parameters();
[JScript]
public function get Parameters() : OleDbParameterCollection;
プロパティ値
SQL ステートメントまたはストアド プロシージャのパラメータ。既定値は空のコレクションです。
解説
CommandType を Text に設定した場合、OLE DB .NET プロバイダでは、 OleDbCommand が呼び出す SQL ステートメントまたはストアド プロシージャにパラメータを渡すための名前付きパラメータを利用できません。この場合は、疑問符 (?) プレースホルダを使用する必要があります。次に例を示します。
SELECT * FROM Customers WHERE CustomerID = ?
このため、コマンド テキストでのパラメータの疑問符プレースホルダの位置と、 OleDbParameter オブジェクトを OleDbParameterCollection に追加する順序とを、正しく対応させる必要があります。
メモ コレクションのパラメータが、実行するクエリの要件と一致しない場合は、エラーが発生することがあります。
詳細については、「 コマンドによるストアド プロシージャの使用 」を参照してください。
使用例
[Visual Basic, C#, C++] OleDbCommand を作成し、そのパラメータを表示する例を次に示します。この例では、 OleDbConnection 、SQL SELECT ステートメントのクエリ文字列、および OleDbParameter オブジェクトの配列がメソッドに渡されます。
Public Sub CreateMyOleDbCommand(myConnection As OleDbConnection, _
mySelectQuery As String, myParamArray() As OleDbParameter)
Dim myCommand As New OleDbCommand(mySelectQuery, myConnection)
myCommand.CommandText = "SELECT CustomerID, CompanyName FROM Customers WHERE Country = ? AND City = ?"
myCommand.Parameters.Add(myParamArray)
Dim j As Integer
For j = 0 To myCommand.Parameters.Count - 1
myCommand.Parameters.Add(myParamArray(j))
Next j
Dim myMessage As String = ""
Dim i As Integer
For i = 0 To myCommand.Parameters.Count - 1
myMessage += myCommand.Parameters(i).ToString() + ControlChars.Cr
Next i
Console.WriteLine(myMessage)
End Sub
[C#]
public void CreateMyOleDbCommand(OleDbConnection myConnection,
string mySelectQuery, OleDbParameter[] myParamArray) {
OleDbCommand myCommand = new OleDbCommand(mySelectQuery, myConnection);
myCommand.CommandText = "SELECT CustomerID, CompanyName FROM Customers WHERE Country = ? AND City = ?";
myCommand.Parameters.Add(myParamArray);
for (int j=0; j<myParamArray.Length; j++)
{
myCommand.Parameters.Add(myParamArray[j]) ;
}
string myMessage = "";
for (int i = 0; i < myCommand.Parameters.Count; i++)
{
myMessage += myCommand.Parameters[i].ToString() + "\n";
}
MessageBox.Show(myMessage);
}
[C++]
public:
void CreateMyOleDbCommand(OleDbConnection* myConnection,
String* mySelectQuery, OleDbParameter* myParamArray[]) {
OleDbCommand* myCommand = new OleDbCommand(mySelectQuery, myConnection);
myCommand->CommandText = S"SELECT CustomerID, CompanyName FROM Customers WHERE Country = ? AND City = ?";
myCommand->Parameters->Add(myParamArray);
for (int j=0; j<myParamArray->Length; j++)
{
myCommand->Parameters->Add(myParamArray[j]) ;
}
String* myMessage = S"";
for (int i = 0; i < myCommand->Parameters->Count; i++)
{
myMessage = String::Concat( myMessage, myCommand->Parameters->Item[i], S"\n" );
}
MessageBox::Show(myMessage);
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
参照
OleDbCommand クラス | OleDbCommand メンバ | System.Data.OleDb 名前空間 | OleDbParameter