SqlConnection myConnection = new SqlConnection(myConnectionString);
   SqlCommand myCommand = new SqlCommand(mySelectQuery, myConnection);
   myConnection.Open();
   SqlDataReader myReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
   while(myReader.Read()) 
   {
      Console.WriteLine(myReader.GetString(0));
   }
   myReader.Close();
}

解决方案 »

  1.   

    如果不包含:(CommandBehavior.CloseConnection);
    则加上:myConnection.Close();
      

  2.   

    各位,我希望能还有人确认一下 shanhe(TNT)  的解释~~~我现在把这个问题换一种说法~~~
    用Microsoft.ApplicationBlocks.Data
    完成下面的过程。objReader = SqlHelper.ExecuteReader(.......)
    text1 = objReader("Text1")
    objReader.Close()
    到这里是不是数据库的链接资源都已经释放了?
    我总觉的还应该释放数据链接。请各位指点~~~
      

  3.   

    objReader.Close()
    你没有释放连接。要释放连接,可以这样:
    myConnection1.Close();
    或者
    myCommand1.Connection.Close();
      

  4.   

    qiuji(忆秋季) :用SqlHelper获得的Reader 对象,如何释放链接?
      

  5.   

    不知道可以不可以设置为nothing
      

  6.   

    各位帮忙啊~~~再次明确问题:
    1,用Microsoft.ApplicationBlocks.Data
    中的SqlHelper.ExecuteReader获得objReader完成业务后,如何释放数据库资源?2,是否只需要objReader.Close()便可释放所有资源?3,如果不是,那么现在只有Reader对象,如何释放其他资源?4,如果不是,那么Microsoft.ApplicationBlocks.Data是否提供了释放所有数据库链接的方法?拜托各位~~~
      

  7.   

    objReader = SqlHelper.ExecuteReader(.......)
    你后面的.....是什么内容?用Microsoft.ApplicationBlocks.Data是可以关闭连接的。
    你可以这样:
    objReader = SqlHelper.ExecuteReader(myConnection1,CommandType.Text, connectionString);
    myConnection1.Close();
      

  8.   

    if you look at the SqlHelper's source code,"......If connectionOwnership = SqlConnectionOwnership.External Then
                    dr = cmd.ExecuteReader()
    Else
                    dr = cmd.ExecuteReader(CommandBehavior.CloseConnection)
    End If
    ......"so if you didn't open the connection (and didn't specify the last parameter SqlConnectionOwnership), then you only need to calldr.Close()to release the resources
      

  9.   

    谢谢各位~~~问题已经解决了,只需要用Reader.close()