[英]Why this select query to Oracle(View) doesn't work?
首先,我测试了一些简单的案例:
cmd.Parameters.Add(new OracleParameter(":paramCode", OracleDbType.NVarchar2)).Value = userCode;
cmd.CommandText = "SELECT * FROM VIEWUSERDATA WHERE Codigo = :paramCode";
cmd.CommandType = System.Data.CommandType.Text;
OracleDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
//Works, retrieve data
}
另一个:
cmd.Parameters.Add(new OracleParameter(":paramRole", OracleDbType.NVarchar2)).Value = userRole;
cmd.CommandText = "SELECT * FROM VIEWUSERDATA WHERE Role = :paramRole";
...
while (reader.Read())
{
//Also works
}
但是加入时不起作用。
cmd.Parameters.Add(new OracleParameter(":paramCode", OracleDbType.NVarchar2)).Value = userCode;
cmd.Parameters.Add(new OracleParameter(":paramRole", OracleDbType.NVarchar2)).Value = userRole;
cmd.CommandText = "SELECT * FROM VIEWUSERDATA WHERE Role = :paramRole AND Code = :paramCode";
...
while (reader.Read())//don't retrieve anything
{
}
数据存在,如果我在外部查询编辑器(窗口)中执行查询,则工作正常。
谢谢。
默认情况下,Oracle参数绑定是按位置而不是名称。 交换两个cmd.Parameters.Add
调用或设置cmd.BindByName = true;
在执行查询之前。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.