Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么ORA-01403:未找到数据错误显示_C#_Oracle - Fatal编程技术网

C# 为什么ORA-01403:未找到数据错误显示

C# 为什么ORA-01403:未找到数据错误显示,c#,oracle,C#,Oracle,我正在后台使用Oracle 11g开发一个ASP.NET web应用程序。我已经编写了一个单独的SP,用于从数据库表中获取用户登录数据和标志。请在FetchUserLoginData()方法中找到以下代码段: 现在的问题是,当我尝试在没有任何SP的情况下运行时,只要编写和执行一个直接查询,就没有问题了,它可以很好地从数据库中获取数据。对于SP,我遇到了一个异常:未找到任何数据。我给了一个正确的用户名和密码每次,但它不能获取任何数据。即使我尝试从SQLDeveloper或PL/SQL运行该过程,也

我正在后台使用Oracle 11g开发一个ASP.NET web应用程序。我已经编写了一个单独的SP,用于从数据库表中获取用户登录数据和标志。请在FetchUserLoginData()方法中找到以下代码段:


现在的问题是,当我尝试在没有任何SP的情况下运行时,只要编写和执行一个直接查询,就没有问题了,它可以很好地从数据库中获取数据。对于SP,我遇到了一个异常:未找到任何数据。我给了一个正确的用户名和密码每次,但它不能获取任何数据。即使我尝试从SQLDeveloper或PL/SQL运行该过程,也没有发现任何问题。问题只存在于我尝试从服务器端编码执行SP时。

对我有效的方法是添加要从SP返回的引用游标。SP有一个问题,现在我解决了。如果不返回游标,DataTable、DataSet、DataReader、DataAdapters将不会从SP获取任何数据,即使SP应该这样做。如果对其他人有任何帮助,我会在这里全力以赴

CREATE OR REPLACE PROCEDURE FETCH_USER_LOGIN_ROLE_DATA
(
 USERID IN VARCHAR2  
,USERPWD IN VARCHAR2
,OUT_CURSR OUT SYS_REFCURSOR
) 
AS 
BEGIN
OPEN OUT_CURSR FOR
   SELECT 
      U.ROWID,U.USER_SL,U.ISADMIN,U.ISPOWERUSER,
      U.ISLOCKED,U.ISCLOSED,U.ISSEASED,U.ISLOGGEDIN
   FROM USERS U
   WHERE U.USER_ID=USERID AND
         U.USER_PWD=USERPWD;
END FETCH_USER_LOGIN_ROLE_DATA;

您两次通过
LoginID
有什么原因吗?您对用户名和密码使用了相同的值???@codingbiz:这是一个输入错误。我用代码更正了它,仍然不起作用。DataReader无法从表中提取任何数据。请尝试在
fetch\u USER\u LOGIN\u ROLE\u data
sqlcommand中添加一个输出命令,然后找出当前sql中存在的问题。SP中一定存在问题。您是否在SP中的@varible from Tablename”类型查询中使用了任何“select column\u值”。此查询不会返回任何记录,这就是为什么你会得到以上的例外。还要检查SP中声明的参数的类型和大小数据类型。是否可以发布SP代码?
CREATE OR REPLACE PROCEDURE FETCH_USER_LOGIN_ROLE_DATA
(
 USERID IN VARCHAR2  
,USERPWD IN VARCHAR2
,OUT_CURSR OUT SYS_REFCURSOR
) 
AS 
BEGIN
OPEN OUT_CURSR FOR
   SELECT 
      U.ROWID,U.USER_SL,U.ISADMIN,U.ISPOWERUSER,
      U.ISLOCKED,U.ISCLOSED,U.ISSEASED,U.ISLOGGEDIN
   FROM USERS U
   WHERE U.USER_ID=USERID AND
         U.USER_PWD=USERPWD;
END FETCH_USER_LOGIN_ROLE_DATA;