在使用OracleParameters时,CommandText 中的参数要以":"开头,不能包含@等特殊字符。而在其它地方引用到此参数时可以不必加上":",程序会自动为其加上":"
OracleCommand oracmd = oracon.CreateCommand();
oracmd.CommandText = "select gas_user_no,vol_page,user_name,user_address,unit from gas_meter where gas_user_no = :gas_userno";
if (!oracmd.Parameters.Contains("gas_userno"))
{
oracmd.Parameters.Add(new OracleParameter("gas_userno", OracleDbType.Varchar2, ParameterDirection.Input));
}
oracmd.Parameters["gas_userno"].Value = “666666”
OracleDataAdapter da = new OracleDataAdapter();
da.SelectCommand = oracmd;
DataTable dt = new DataTable();
da.Fill(dt);
OracleDataReader dr = oracmd.ExecuteReader();
以下为转载内容:
当 CommandType 属性设置为StoredProcedure 时,CommandText 属性应设置为存储过程的名称。如果存储过程名称包含任何特殊字符,则可能会要求用户使用转义符语法。当调用 Execute 方法之一时,该命令将执行此存储过程。
用于 Oracle 的 .NET Framework 数据提供程序在向由CommandType.Text 的OracleCommand 调用的 SQL 语句传递参数时不支持问号 (?) 占位符。在这种情况下,必须使用命名的参数。例如: