OracleCommand.Parameters 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
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.Text
SQL 语句。 在这种情况下,必须使用命名参数。 例如:
SELECT * FROM Customers WHERE CustomerID = :pCustomerID
在 由 OracleCommandCommandType.Text
的 调用的 SQL 语句中使用命名参数时,必须在参数名称前面加上冒号 (:) 。 但是,在存储过程中或引用代码中其他位置的命名参数时, (例如,在向属性) 添加 OracleParameter 对象 Parameters 时,不要在命名参数前面加上冒号 (:) 。 Oracle .NET Framework数据提供程序自动提供冒号。