使用 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
....................................................................................................寄信给我 mis2000lab (at)雅虎.com.台湾 ........
ASP.NET案例精编(清华大学出版社 / 作者MIS2000Lab)
http://www.china-pub.com/46063
2009/5/15上市
市场价 :¥59.80 RMB(人民幣)