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

 

使用 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

转载于:https://www.cnblogs.com/mis2000lab/archive/2010/10/15/2008_04_28_3522_DataReader_Using.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值