MIS2000 Lab. -- ASP.NET学习&分享 / ASP.NET案例精编(清华大学出版社)
您好,我来自台湾。很高兴与各位分享一些成果。希望对您有帮助。出版书籍是「ASP.NET案例精编 / 清华大学出版社」。

 

使用 Using...End Using区块来写程序,要非常小心!

 

http://www.dotblogs.com.tw/mis2000lab/archive/2008/04/28/3522.aspx

 

 

 

 

 

使用 Using...EndUsing区块来写程序,要非常小心!

不要忽略了里面可能发生的危机。

http://forums.microsoft.com/MSDN-CHT/ShowPost.aspx?PostID=1417995&SiteID=14

http://forums.microsoft.com/MSDN-CHT/ShowPost.aspx?PostID=3225947&SiteID=14

 

以下是一个简单的程序。以数据库连结来说(变量名称Conn)。

我写了一小段程序来观察,如下面的红字。

Using区块的确会自动帮我们关闭,完成这两件事。Conn.Close()Conn.Dispose()


 


     Protected Sub Page_Load(ByVal sender As Object,ByVal e As System.EventArgs) Handles Me.Load
        Dim SQLstr As String = "SELECTtop 5 * From test"
        Dim Conn As New SqlConnection(WebConfigurationManager.ConnectionStrings("testConnectionString").ConnectionString)
        Dim cmd As New SqlCommand(SQLstr, Conn)

        Using Conn

            Conn.Open()  '==第一,连结数据库==
           '—批注:开启数据库联机!但后面「不」需要写关闭的动作(Conn.Close()),因为Using....End Using 会自己处理资源的后续动作。


           '==第二,设定SQL指令****(巢状 Using)****==
            Using dr As SqlDataReader = cmd.ExecuteReader()


               '==第三,自由发挥,将资料呈现在画面上==
               '---- 把DataReader获得的数据,跟GridView控件系结(.DataBind())在一起。
               '---- GridView控件就会自动把数据展现在画面上了。
               GridView1.DataSource = dr
               GridView1.DataBind()

 

               cmd.Cancel()
                ' dr.Close()   '-- Using 会帮你关闭资源
            End Using   '--处置DataReader****(巢状 Using)****


        EndUsing
        '==第四,关闭资源&数据库的联机==
        '—批注:数据库联机(Conn)会「自动关闭」。因为它是由 Using来开启,EndUsing会自动关闭之。


      Response.Write( Conn.State)
    End Sub

 


 

相关文章,

   发生错误时要执行的动作:处理错误。请参考微软文件,http://msdn.microsoft.com/zh-tw/library/betd08h8.aspx

    Using陈述句,请参考微软文件,http://msdn2.microsoft.com/zh-tw/library/htd05whh(VS.80).aspx

posted on 2010-10-15 16:46  MIS2000 Lab.  阅读(702)  评论(0编辑  收藏  举报


ASP.NET案例精编——适用于VS 2005/2008(配光盘)
 

当当网购买 http://product.dangdang.com/product.aspx?product_id=20583373&ref=search-1-pub