介紹在ASP.NET程序中調(diào)試SQL Server對(duì)象
在ASP.NET程序中調(diào)試SQL Server對(duì)象,數(shù)據(jù)庫(kù)中直接調(diào)試可以讓我們非常簡(jiǎn)單地在Visual Studio IDE里直接調(diào)試存儲(chǔ)過(guò)程。但是,有的時(shí)候我們需要在ASP.NET程序調(diào)用相關(guān)的存儲(chǔ)過(guò)程的時(shí)候再調(diào)試。 這樣,當(dāng)某個(gè)數(shù)據(jù)庫(kù)對(duì)象被調(diào)用的時(shí)候,我們就可以對(duì)其進(jìn)行調(diào)試。
這種調(diào)試方法整合到了應(yīng)用程序的調(diào)試之中。 要使用它需要做如下幾步:
◆給你想要調(diào)試的數(shù)據(jù)庫(kù)對(duì)象添加斷點(diǎn)。 數(shù)據(jù)庫(kù)對(duì)象只有在包含斷點(diǎn)的情況下才會(huì)被調(diào)試。 例如,一般情況下,應(yīng)用程序在調(diào)用存儲(chǔ)過(guò)程的時(shí)候,你是不能進(jìn)入存儲(chǔ)過(guò)程內(nèi)部的, 如果你想調(diào)試存儲(chǔ)過(guò)程,那就必須要在存儲(chǔ)過(guò)程內(nèi)部設(shè)置斷點(diǎn)。
◆配置應(yīng)用程序,使其可以調(diào)試SQL Server對(duì)象。 這個(gè)比較容易,你只要選中一個(gè)復(fù)選框即可。
◆禁用連接池。 連接池可以提高性能,它允許程序使用一個(gè)連接池中的某個(gè)空閑的連接來(lái)連接數(shù)據(jù)庫(kù)。 如果啟用它,就不能正確地調(diào)試了。因?yàn)槟J(rèn)情況下是啟用連接池的,所以我們必須在設(shè)置連接字符串的時(shí)候禁用它。(當(dāng)你完成了在ASP.NET程序中調(diào)試SQL Server對(duì)象的工作之后,一定要記得重新啟用連接池)
接下來(lái)讓我們來(lái)看一看這幾個(gè)步驟具體該如何做。
首先,在Visual Studio中打開(kāi)“DoThings”存儲(chǔ)過(guò)程,然后在“DECLARE @AvgPrice money”這句上設(shè)置斷點(diǎn)。 這樣第一步就完成了,接下來(lái)做第二步。
配置ASP.NET程序,以使其支持SQL Server的調(diào)試。右鍵單擊項(xiàng)目,然后選擇屬性。 此時(shí)將會(huì)彈出一個(gè)如下圖所示的對(duì)話(huà)框。 選擇啟動(dòng)選項(xiàng),然后在“調(diào)試器”部分中選中“SQL Server”復(fù)選框。 這樣就完成前兩步了,還差最后一步。
最后一步,我們需要修改連接字符串,使其禁用連接池。這個(gè)任務(wù)相當(dāng)簡(jiǎn)單,你只要在你的連接字符串后加一個(gè)屬性“Pooling=false”即可。假設(shè)你將連接字符串信息定義在了Web.config的& lt;connectionString>節(jié)點(diǎn)里,那么修改后的連接字符串如下所示:
- <connectionStrings>
- <add name="NorthwindConnectionString" connectionString="Data Source=.\
SQLEXPRESS;AttachDbFilename=|DataDirectory|\NORTHWND.MDF;Integrated
Security=True;User Instance=True; Pooling=false" providerName="System.
Data.SqlClient"/>- </connectionStrings>
現(xiàn)在,我們已經(jīng)完成了這3個(gè)步驟。 為了演示如何調(diào)試,我們來(lái)創(chuàng)建一個(gè)調(diào)用“DoThings”存儲(chǔ)過(guò)程的ASP.NET頁(yè)。本文結(jié)尾處你下載的Demo中就包含有這個(gè)頁(yè)面。 當(dāng)你調(diào)試ASP.NET程序并且訪問(wèn)了這個(gè)頁(yè)的時(shí)候,程序就會(huì)暫停在存儲(chǔ)過(guò)程中設(shè)置了斷點(diǎn)的地方。然后,你就可以單步執(zhí)行存儲(chǔ)過(guò)程,并且可以在監(jiān)視窗口中查看和修改參數(shù)和變量的值,就像在數(shù)據(jù)庫(kù)中直接調(diào)試存儲(chǔ)過(guò)程一樣。
在SQL Server之前的版本中有一套用于調(diào)試存儲(chǔ)過(guò)程的獨(dú)立工具。 到了現(xiàn)在的SQL Server 2005,存儲(chǔ)過(guò)程、觸發(fā)器和用戶(hù)自定義函數(shù)(UDFs)都是通過(guò)Visual Studio Team System和Professional版本來(lái)調(diào)試的。 它給我們帶來(lái)了3種調(diào)試SQL Server的方法:數(shù)據(jù)庫(kù)中直接調(diào)試、應(yīng)用程序調(diào)試和在SQL Server項(xiàng)目中調(diào)試。本文中,我們一起研究了前兩種調(diào)試方法(使用本地?cái)?shù)據(jù)庫(kù))。 以上介紹在ASP.NET程序中調(diào)試SQL Server對(duì)象。
【編輯推薦】