zoukankan      html  css  js  c++  java
  • Command 查询多重活动结果集

      今天终于算是把这个多重结果集弄明白了,呵呵,sql server 2005就是比2000优秀多了...

       我们还是先看一段代码:

      SqlConnection conn =new SqlConnection("server=.\\sqlexpress;database=wtqtest;Integrated Security=sspi;MultipleActiveResultSets=ture");

            
    private void button1_Click(object sender, EventArgs e)
            {
                
    try
                {
                    conn.Open();
                    SqlCommand cmd1 
    = new SqlCommand("select fname from mytable1", conn);
                    SqlCommand cmd2 
    = new SqlCommand("select lname from mytable1", conn);

                    SqlDataReader dr1 
    = cmd1.ExecuteReader();
                    SqlDataReader dr2 
    = cmd2.ExecuteReader();

                    
    while (dr1.Read())
                    {
                        
    this.textBox1.Text += dr1[0].ToString();
                    }

                    
    while (dr2.Read())
                    {
                        
    this.textBox2.Text += dr2[0].ToString();
                    }

                    dr1.Close();
                    dr2.Close();
                }
                
    catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }

     或许大家已经看到了连接字符串中有一句:MultipleActiveResultSets=ture,大家可以试着把它去掉,呵呵,代码肯定就会出问题的.

    在声明 dr2 那行出现了错误:("已有打开的与此命令相关联的 DataReader,必须首先将它关闭。")

    这个就是在没有设置:MultipleActiveResultSets=ture的情况下一个连接就只能查询一个活动的结果集,由于它还没有被关闭,所以就出了问题,

    但如果你加上了:MultipleActiveResultSets=ture这句它就允许你在一个连接中查询多个结果集.呵呵,是不是很神奇!!

    其实它更广泛的用途是有些情况我们要把一个查询放到一个临时变量中,然后再用这个临时变量去更新另一张表,更新完后这个临时变量就没用了,这种情况下

    我们就可以创建两个查询,直接把第一个查询结果传给第二个查询,就不用再去创建临时变量,浪费内存了!!!

     

  • 相关阅读:
    css中后代、元素、类、id选择器以及行间style优先级的比较
    JS小功能x系列6文字自动滚动
    JS小功能系列7自动打字
    JS小功能系列6折叠
    JS小功能系列5图片左右移动
    JS小功能系列4图片轮播综合数字轮播,顺时针逆时针,自动轮播
    JS小功能系列3时钟
    JS小功能系列2商品计算
    JS小功能系列1换一批
    JS隔行变色,鼠标悬停变色
  • 原文地址:https://www.cnblogs.com/wantingqiang/p/1299035.html
Copyright © 2011-2022 走看看