OracleCommand.Parameters 属性

定义

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 显示其参数。 为此,向 方法传递了一个 、一个 OracleConnection作为 SQL SELECT 语句的 OracleParameter 查询字符串和一个对象数组。

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 不支持问号 (?) 占位符将参数传递给 由 OracleCommand 调用的 CommandType.TextSQL 语句。 在这种情况下,必须使用命名参数。 例如:

SELECT * FROM Customers WHERE CustomerID = :pCustomerID  

在 由 OracleCommandCommandType.Text的 调用的 SQL 语句中使用命名参数时,必须在参数名称前面加上冒号 (:) 。 但是,在存储过程中或引用代码中其他位置的命名参数时, (例如,在向属性) 添加 OracleParameter 对象 Parameters 时,不要在命名参数前面加上冒号 (:) 。 Oracle .NET Framework数据提供程序自动提供冒号。

适用于

另请参阅