ADO.NET2.0-多活动结果集

上一篇博客讲了ADO.NET2.0的新特性之一的异步查询。这次我们讲一下ADO.NET2.0配合SQL Server2005的一个特性,多活动结果集。SQL默认是禁用多活动结果集的,必须要在连接字符串中显示的打开。上一篇博客中有讲解如何开启。请注意测试数据库使用的是SQL Server2005版本。运行截图如下:

后台代码如下,代码比较简单,请看注释。

 

     // 多活动的结果集
     private   void  BindMARSData()
    
{
        
string QueryStr;
        SqlConnection Con 
= new SqlConnection(ConStr);
        SqlCommand CmdOreder, CmdDetail;
        SqlParameter CusID, OrderID;
        SqlDataReader RdrOrder, RdrDetail;

        Con.Open();
        QueryStr 
= "SELECT orderid,orderdate From Orders WHERE customerID= @CuID";
        CmdOreder 
= new SqlCommand(QueryStr,Con);
        CusID 
= CmdOreder.Parameters.Add("@CuID",SqlDbType.NChar,5);

        QueryStr 
= "SELECT productid,quantity,unitprice FROM [order details] WHERE orderid=@OrderID";
        CmdDetail 
= new SqlCommand(QueryStr,Con);
        OrderID 
= CmdDetail.Parameters.Add("@OrderID",SqlDbType.Int);

        CusID.Value 
= "ALFKI";
        Response.Write(
"ID为:"+CusID.Value);

        RdrOrder 
= CmdOreder.ExecuteReader();
        
while (RdrOrder.Read())
        
{
            Response.Write(RdrOrder[
"OrderID"]+"</br>");
            Response.Write(
"********************************</br>");
            
//以第一个DataReder读出的结果为参数,执行第二个SQL
            OrderID.Value = RdrOrder["OrderID"];
            RdrDetail 
= CmdDetail.ExecuteReader();
            
while (RdrDetail.Read())
            
{
                Response.Write(RdrDetail[
"unitprice"]+"</br>");
            }

            RdrDetail.Dispose();
        }


        RdrOrder.Dispose();
        Con.Dispose();
        CmdDetail.Dispose();
        CmdOreder.Dispose();
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值