none
请教:关于using(SqlDataReader dr....)的正确用法 RRS feed

  • 问题

  • 这个语句怎么写,才能让连接自动关闭?我看到下面的写法

    using(IDataReader dr = SqlHepler.ExecuteReader(sql)){
      while(dr.Read()){
     ...
      }
    }

    还有

    using(SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection)){
      while(dr.Read()){
     ...
      }
    }

    正确写法应该是怎样?


    开心了就笑,不开心了就过会儿再笑

    2012年3月9日 8:53

答案

  • HI,NewJion

    如果想让语句自动关闭,关闭的应该是SqlConnection所以一概是

    using(sqlConnection conn=new sqlConnection(connString)){

    ....

    }

    • 已标记为答案 NewJoin 2012年3月12日 5:04
    2012年3月11日 14:10

全部回复

  • HI,NewJion

    如果想让语句自动关闭,关闭的应该是SqlConnection所以一概是

    using(sqlConnection conn=new sqlConnection(connString)){

    ....

    }

    • 已标记为答案 NewJoin 2012年3月12日 5:04
    2012年3月11日 14:10
  • 哦,原来是这样啊,可是我怎么看到好多都是using(SqlDataReader)的呢?


    开心了就笑,不开心了就过会儿再笑

    2012年3月12日 1:24
  • 您好,using语法是IDisposable 对象的方便语法。将一个对象放入using中,当using块中语句执行完毕后,该对象会自动释放。Jone Zhu给你的例子正是这样,您所说的SqlDataReader也是一样,但括号内是一个对象,而不是一个类。


    Allen Li [MSFT]
    MSDN Community Support | Feedback to us

    2012年3月12日 3:51
    版主