0
首先,我測試了簡單的情況:爲什麼選擇查詢到Oracle(View)不起作用?
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
{
}
數據存在,如果我在外部查詢編輯器(窗口)查詢工作正常。
謝謝。
當您執行最後一個查詢時是否有任何行返回?前2個查詢可能工作,但對於最後一個查詢,'where'條件是不同的。 – HappyLee
userCode和userRole是什麼類型?只是絃樂? – paqogomez
嘗試使用OR而不是AND,它應該工作。問題在於沒有包含該角色和該代碼的行。 – Casperah