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