解決每個頁面都要初始化 特定物件 (如連線物件) 的做法   1 comment

最近在幫網頁專案設計ORM架構,不過協助設計的同事反映說,每次要使用ORM物件前都要先建立SQL連線物件,如果忘記建立,程式就會錯OTZ
不過老實說,我也覺得這樣很瞎,因此經過思考與測試後,發現此做法即可免除掉每個頁面要使用前都必須要建立SQL連線字串

 

主要是先建立一個靜態類別,利用屬性的方式,將所傳入SQL連線物件儲存到Application變數中

 

1.先建立一個靜態類別,可直接執行相關函式。

public static class DataControler
{
        public static System.Data.SqlClient.SqlConnection conn
        {
            get
            {
                if (System.Web.HttpContext.Current.Application["CONN"] == null || System.Web.HttpContext.Current.Application["CONN"].Equals(String.Empty))
                    throw new Exception("注意!! 無法抓取到儲存到Application變數 SqlConnection!! 物件");
                else
                    return (System.Data.SqlClient.SqlConnection) System.Web.HttpContext.Current.Application["CONN"];
            }
            set
            {
                System.Web.HttpContext.Current.Application["CONN"] = value;
            }
        }

}

 

2.在Global.asax的檔案中,找到下列的函式,增加下列的內容。

void Application_Start(object sender, EventArgs e)
   {
       // 應用程式啟動時執行的程式碼
       Aurora.Web.Module.Manage.DataControler.conn = new System.Data.SqlClient.SqlConnection(ConfigurationManager.ConnectionStrings["TestConnString"].ConnectionString);
   }

3.之後要使用頁面使用,直接存取 DataControler.conn 即可(可在其他頁面中加入下列的程式碼來測試)

Response.Write(DataControler.conn.ConnectionString);

廣告

Posted 2008 年 11 月 07 日 by sfcer0414 in KB

One response to “解決每個頁面都要初始化 特定物件 (如連線物件) 的做法

Subscribe to comments with RSS.

  1. nice Tech article,
    thanks for share 😉
     
    williams

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

%d 位部落客按了讚: