sql过程只返回最后一行而不是多行

时间:2010-12-26 05:29:27

标签: sql

我已经验证过程确实会返回多个ro 问题是我的sql过程只返回一行,但是从asp端我只能得到一行:

ALTER PROCEDURE cphsdbm.tp_Trip_List
@UserID int,
@Trip_Name varchar(50) output
AS
BEGIN
SELECT @Trip_Name = Trip_Name FROM tbl_Trip WHERE UserID=@UserID; 
END

我的代码:

do
{
while (rdr2.Read())
{
trip_count++;
Response.Write("Success!");
}
trip_count++;
} while (rdr2.NextResult());

2 个答案:

答案 0 :(得分:3)

要返回多行,您的存储过程应返回结果集(而不是单个输出值),即:

ALTER PROCEDURE cphsdbm.tp_Trip_List 
@UserID int
AS 
BEGIN 
     SELECT Trip_Name FROM tbl_Trip WHERE UserID = @UserID;  
END 

阅读:

while (rdr2.Read()) 
{ 
   trip_count++; 

   // ... do something with trip name...
} 

答案 1 :(得分:2)

您正在使用的存储过程不应返回一行。它只会返回您传递给存储过程的Trip_Name变量中的output值。我不知道您的数据库的结构或您需要从表中读取的内容,因此除非您详细说明您的要求,否则我无法提出任何建议。

此外,读者中不会有任何NextResult()