SqlDataReader通过存储过程读取只出现一条数据

我在sqlserver数据库里面编写了一个分页存储过程,这个过程是涉及到两张表的查询合并成一张表,简化sql语句能在查询界面查询出数据,但是当我用SqlDataReade... 我在sql server数据库里面编写了一个分页存储过程,这个过程是涉及到两张表的查询合并成一张表,简化sql语句能在查询界面查询出数据,但是当我用SqlDataReader来用while(reader.Read())方式读取数据时,不管怎么样就只有第一条 展开
 我来答
匿名用户
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())一条一条读取的啊,怎么不行?只能取到第一条数据
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bxfc
2013-05-09 · TA获得超过872个赞
知道小有建树答主
回答量:1104
采纳率:0%
帮助的人:684万
展开全部
Reader.Read ()方法你没有看到介绍么,这是只向前读取一条记录。

不管你如何分页,你返回值都被视为一个完整的数据集,你想用Read来读这个数据集的话,除非是你的分页为一而一条。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式