2012-07-27 148 views
0

我有一個ASP.NET(vb.net而不是c#)網站,其中包含大量的單獨頁面。爲了減少重複的代碼,我將該網站的主模板作爲母版頁。減少ASP.NET中的冗餘查詢

有一個特定的變量(讓我們稱之爲Sale),它用在每一頁和母版頁中。

目前,我已經在每個頁面中都有一個簡單的SQL查詢,並且在每次加載頁面時都會運行的母版頁中檢查Sale的值(1或0),並且,取決於該值的不同部分的代碼顯示。

我的問題是,這似乎(對我來說)像很多冗餘/重複的SQL調用。

我可以將Sale的值寫入會話變量,但出於一大堆理由,這並不實際,所以還有哪些其他選項對我開放?

+0

您可以使用您在每個頁面上覆制的代碼創建控件,並在需要執行代碼的頁面中使用該控件! – 2012-07-27 10:47:08

+0

Ye-es,我可以做到這一點,但控制權仍然會在頁面和母版頁中調用,這是我試圖擺脫的冗餘。 – FrustratedWDotNet 2012-07-27 11:19:25

+0

我以爲即使它是相同的代碼,它的執行方式取決於您所在的頁面。 – 2012-07-27 11:23:16

回答

2

asp.net的功過提防提供了一個很好的緩存機制。這將允許你緩存你想要的任何對象。

本主題是相當巨大的,所以我只會給你幾個指針:

Caching Application Data

Adding items to cache

既然你正在尋找優化查詢一下SqlCacheDependency

+0

感謝您的這些鏈接;有趣的閱​​讀,它給了我一個如何解決我的直接問題的想法,謝謝! – FrustratedWDotNet 2012-07-27 14:42:09

0

如果你的數據是相同的每個實例,

維護站點中的公共靜態對象和靜態變量 節省Application_Start事件global.asax文件的數據,靜態物體將在每一個頁面訪問與母版頁也

但是,使用靜態對象,如果要了解他們Go here

+0

看完記得以後,這絕對不是我想下山的衚衕,但是謝謝你的建議! – FrustratedWDotNet 2012-07-27 14:43:02