2011-09-22 60 views
0

如何讓我的SQLDataSource從會話變量中讀取ConnectionString讓Gridview從Session讀取ConnectionString?

我知道我可以在代碼中做到這一點,就像這樣:

protected void Page_Load(object sender, EventArgs e) 
{ 
    uxDS.ConnectionString = Session["con"].ToString(); 
} 

但我真正想要的是這樣呢?

<asp:SqlDataSource ID="uxDS" ... ConnectionString='<% Session["con"] %>' /> 

我可以發誓我看到它在某處完成,但我似乎無法找到它。

+0

這肯定讓我覺得,你真正需要的是理解關於加上一個ObjectDataSource多租戶更強大的數據訪問層。這將幫助您在一個地方本地化處理多租戶方面的代碼,幫助您在需要更改工作方式時防止錯誤和級聯編輯。我想有一些簡單的場景,這是有道理的,但我很懷疑。 – tvanfosson

+0

我這樣做是因爲我討厭多個'web.config'文件,所以我有:'Session_Start(...){if(HttpContext.Current.Server.MachineName ==「...」){Session [「con 「] =」...「}}' –

+0

您是否考慮過爲每臺機器使用不同發佈目標的Web.Config轉換?看起來很乾淨。無論如何,我的評論更傾向於散佈整個頁面中的連接字符串分配邏輯。 – tvanfosson

回答

0

你試過這個嗎?

<asp:SqlDataSource ID="uxDS" ... ConnectionString='<%# Session["con"] %>' /> 
+0

它告訴我ConnectionString屬性還沒有被初始化,即使在代碼隱藏中完全相同的字符串綁定工作正常。 –