Function getchild(sql as string,key as string,pid as integer) as sqldatareader
   dim cmd as sqlcommand = new sqlcommand(sql,opencon)
   dim dr as sqldatareader
   cmd.commandtype = commandtype.storedprocedure
   cmd.parameters.add(new sqlparameter(key,sqldbtype.int))
   cmd.parameters(key).value = pid
   dr = cmd.executereader
    opencon.dispose() ‘似乎不能实现断开
  return dr
C#的:
dr.close();
dr=null;

解决方案 »

  1.   

    SqlDataReader 是基于持续型连接的,所以连接必须是在你使用完毕 dr 后才关闭
      

  2.   

    在一张 aspx 页面里调用时的简单描述
    <% 
     dim aty as new readauthority 
    dim dr as sqldatareader  
    dr = aty.getchild("selectchildid","@pid",cint(dr("id"))) 
    ‘调用自定义名字空间的 class (readauthority)
    while dr.read() %> 
     <%= dr(0) %> <br> 
    <% end while 
         dr.close() %> 
    到此 dr 使用完毕,我要如何才能断开与数据库的连接呢?如何才能实现。
      

  3.   

    首先你那么写就已经违背了微软.NET开发建议,"不要将服务端代码与客户端显示混写"
    活动架构不支持<%%>元素
    其次,conn.close()完全可以关闭数据连接,不用太担心