2008-11-18 66 views
1

我有一個Web應用程序,它在後端有一個Sql Server數據庫。由於該網站將推出到不同的客戶端(或IIS中的不同虛擬目錄),該網站的每個客戶端衍生產品都將使用相同的後端。限制sqldatasource返回的記錄,在where子句中使用會話變量

有一個管理頁面,可以更改網站上的文本(在列表視圖中輸入文本,並選擇頁面以選擇文本顯示的位置,還可以在其他列表視圖中看到公司特定的詳細信息。因爲這是一個共享數據庫,這意味着客戶端可以看到彼此的數據。

我想要做的是存儲accountId(從login_authenticate從數據庫返回的guid),並將其粘貼到會話中。然後檢索這個管理頁面,我想要使用這個值(但它總是0000-0000等),以限制在列表視圖中返回的記錄。

有沒有這樣的例子呢?設置d默認值(這是在SqlDataSource的where子句中),以編程方式記錄帳戶ID(因此,我可以給我所有記錄=當前帳戶是什麼,或者登錄名是什麼 - 這存儲在帳戶表中)。

謝謝

回答

0

這聽起來像你的方法應該工作。我會遵循一個調試過程:

  1. 檢查您是否從數據庫中獲取accountID值。第一次檢索值後立即在屏幕上打印。
  2. 如果這有效,請將該值存儲在會話中並立即檢索它,並檢查您是否獲得了該值。
  3. 創建2個測試頁面,其中一個用於設置Session變量,另一個用於檢索它。

我知道這看起來很基本,但是失敗正在上面3個地方的某處引入。如果你能找到哪一步失敗,你將能夠修復它。

1

這就是我試過的。

雖然我感到困惑的是,where子句在使用會話對象時是否獲取了我編寫了要從會話中檢索的代碼的對象,或者我只添加了但未檢索到的對象。我在登錄時獲取accountID(通過加入驗證 - 顯然 - 或登錄失敗)。

當我剛剛檢索到accountid變量,然後在另一頁上檢索它時,我將再次嘗試將該對象存儲在session @登錄頁面中。

出於某種原因,我一直得到0,所以我會在我的應用程序中看看這個。

相關問題