OracleCommand.Parameters プロパティ
メモ : この名前空間、クラス、およびメンバは、.NET Framework Version 1.1 だけでサポートされています。
OracleParameterCollection を取得します。
Public ReadOnly Property Parameters As OracleParameterCollection
[C#]
public OracleParameterCollection Parameters {get;}
[C++]
public: __property OracleParameterCollection* get_Parameters();
[JScript]
public function get Parameters() : OracleParameterCollection;
プロパティ値
SQL ステートメントまたはストアド プロシージャのパラメータ。既定値は空のコレクションです。
解説
CommandType プロパティを StoredProcedure に設定したときは、 CommandText プロパティをストアド プロシージャ名に設定する必要があります。ストアド プロシージャ名に特殊文字が含まれている場合は、エスケープ文字構文を使用する必要があることがあります。いずれかの Execute メソッドを呼び出すと、このストアド プロシージャがコマンドによって実行されます。
.NET Framework Data Provider for Oracle では、 CommandType.Text の OracleCommand が呼び出す SQL ステートメントにパラメータを渡すための疑問符 (?) プレースホルダがサポートされていません。この場合は、名前付きパラメータを使用する必要があります。次に例を示します。
SELECT * FROM Customers WHERE CustomerID = :pCustomerID
SQL ステートメントまたはストアド プロシージャで名前付きパラメータを使用する場合は、パラメータ名の前にコロン (:) を付ける必要があります。ただし、コードの別の場所で名前付きパラメータを参照するとき (Add を呼び出すときなど) は、名前付きパラメータの前にコロン (:) を付けないでください。.NET Framework Data Provider for Oracle は自動的にコロンを付与します。
使用例
[Visual Basic, C#, C++] OracleCommand を作成し、そのパラメータを表示する例を次に示します。この例では、 OracleConnection 、SQL SELECT ステートメントのクエリ文字列、および OracleParameter オブジェクトの配列がメソッドに渡されます。
Public Sub CreateMyOracleCommand(myConnection As OracleConnection, _
mySelectQuery As String, myParamArray() As OracleParameter)
Dim myCommand As New OracleCommand(mySelectQuery, myConnection)
myCommand.CommandText = "SELECT * FROM Emp WHERE Job = :pJob AND Sal = :pSal"
Dim j As Integer
For j = 0 To myParamArray.Length - 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 CreateMyOracleCommand(OracleConnection myConnection,
string mySelectQuery, OracleParameter[] myParamArray)
{
OracleCommand myCommand = new OracleCommand(mySelectQuery, myConnection);
myCommand.CommandText = "SELECT * FROM Emp WHERE Job = :pJob AND Sal = :pSal";
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 CreateMyOracleCommand(OracleConnection* myConnection,
String* mySelectQuery, OracleParameter* myParamArray[])
{
OracleCommand* myCommand = new OracleCommand(mySelectQuery, myConnection);
myCommand->CommandText = S"SELECT * FROM Emp WHERE Job = :pJob AND Sal = :pSal";
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 ファミリ
.NET Framework セキュリティ:
- 直前の呼び出し元の完全信頼。このメンバは、部分的に信頼されているコードから使用することはできません。詳細の参照先 : 部分信頼コードからのライブラリの使用
参照
OracleCommand クラス | OracleCommand メンバ | System.Data.OracleClient 名前空間 | OracleParameter