SqlDataReader通过存储过程读取只出现一条数据
我在sqlserver数据库里面编写了一个分页存储过程,这个过程是涉及到两张表的查询合并成一张表,简化sql语句能在查询界面查询出数据,但是当我用SqlDataReade...
我在sql server数据库里面编写了一个分页存储过程,这个过程是涉及到两张表的查询合并成一张表,简化sql语句能在查询界面查询出数据,但是当我用SqlDataReader来用while(reader.Read())方式读取数据时,不管怎么样就只有第一条
展开
2个回答
2013-05-09
展开全部
-- 测试返回结果集的存储过程
CREATE PROCEDURE testProc
AS
BEGIN
SELECT 'Hello 1' AS A, 'World 1' AS B UNION ALL
SELECT 'Hello 2' AS A, 'World 2' AS B;
END
go
/// <summary>
/// 测试执行存储过程. 返回结果集合.
/// </summary>
/// <param name="conn"></param>
private void CallProcedureWithReturnData(SqlConnection conn)
{
// 创建一个 Command.
SqlCommand testCommand = conn.CreateCommand();
// 定义需要执行的SQL语句.
testCommand.CommandText = "testProc";
// 定义好,本次执行的类型,是存储过程.
testCommand.CommandType = CommandType.StoredProcedure;
// 执行SQL命令,结果存储到Reader中.
SqlDataReader testReader = testCommand.ExecuteReader();
// 处理检索出来的每一条数据.
while (testReader.Read())
{
// 将检索出来的数据,输出到屏幕上.
Console.WriteLine("调用函数:{0}; 返回:{1} - {2}",
testCommand.CommandText, testReader[0], testReader[1]
);
}
// 关闭Reader.
testReader.Close();
}
我这个测试过可行的。 你参考一下。
追问
我也是利用while(reader.Read())一条一条读取的啊,怎么不行?只能取到第一条数据
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询