次の方法で共有


OracleCommand.Parameters プロパティ

定義

OracleParameterCollection を取得します。

public:
 property System::Data::OracleClient::OracleParameterCollection ^ Parameters { System::Data::OracleClient::OracleParameterCollection ^ get(); };
public System.Data.OracleClient.OracleParameterCollection Parameters { get; }
member this.Parameters : System.Data.OracleClient.OracleParameterCollection
Public ReadOnly Property Parameters As OracleParameterCollection

プロパティ値

SQL ステートメントまたはストアド プロシージャのパラメーター。 既定値は空のコレクションです。

次の例では、 を OracleCommand 作成し、そのパラメーターを表示します。 これを実現するために、 メソッドには、 、SQL SELECT ステートメントであるクエリ文字列、および オブジェクトのOracleParameter配列が渡OracleConnectionされます。

public void CreateOracleCommand(OracleConnection connection,
    string queryString, OracleParameter[] myParamArray)
{

    OracleCommand command = new OracleCommand(queryString, connection);
    command.CommandText =
        "SELECT * FROM Emp WHERE Job = :pJob AND Sal = :pSal";

    for (int j = 0; j < myParamArray.Length; j++)
        command.Parameters.Add(myParamArray[j]);

    string message = "";

    for (int i = 0; i < command.Parameters.Count; i++)
        message += command.Parameters[i].ToString() + "\n";

    Console.WriteLine(message);

    using (OracleDataReader row = command.ExecuteReader())
    {
        while(row.Read())
        {
            Console.WriteLine(row.GetValue(0));
        }
    }
}
Public Sub CreateOracleCommand(ByVal connection As OracleConnection, _
ByVal queryString As String, ByVal prmArray() As OracleParameter)

    Dim command As New OracleCommand(queryString, connection)
    command.CommandText = _
        "SELECT * FROM Emp WHERE Job = :pJob AND Sal = :pSal"

    Dim j As Integer
    For j = 0 To prmArray.Length - 1
        command.Parameters.Add(prmArray(j))
    Next j

    Dim message As String = ""
    Dim i As Integer
    For i = 0 To command.Parameters.Count - 1
        message += command.Parameters(i).ToString() + ControlChars.Cr
    Next i

    Console.WriteLine(message)

    Dim reader As OracleDataReader = command.ExecuteReader
    While reader.Read
        Console.WriteLine(reader.GetValue(0))
    End While

End Sub

注釈

CommandType プロパティが StoredProcedure に設定されている場合は、CommandText プロパティをストアド プロシージャの名前に設定します。 ストアド プロシージャ名に特殊文字が含まれている場合、エスケープ文字構文を使用する必要があります。 Execute メソッドのいずれかを呼び出すと、コマンドによりこのストアド プロシージャが実行されます。

.NET Framework Data Provider for Oracle では、 の によって呼び出される SQL ステートメントにパラメーターを渡すための疑問符 (?) プレースホルダーはOracleCommandCommandType.Textサポートされていません。 この場合は、名前付きパラメーターを使用する必要があります。 次に例を示します。

SELECT * FROM Customers WHERE CustomerID = :pCustomerID  

の によってOracleCommandCommandType.Text呼び出される SQL ステートメントで名前付きパラメーターを使用する場合は、パラメーター名の前にコロン (:)を付ける必要があります。 ただし、ストアド プロシージャの場合、またはコード内の別の場所で名前付きパラメーターを参照する場合 (たとえば、プロパティにオブジェクトを追加 OracleParameter する場合)、名前付きパラメーターの前に Parameters コロン (:)を付けないでください。 .NET Framework Data Provider for Oracle では、コロンが自動的に提供されます。

適用対象

こちらもご覧ください