2010-01-20 53 views
6

我有一個asp.net nTier應用程序。數據訪問層是一個強類型的DataSet,由多個具有DataAdapter的DataTable組成。當用戶登錄時,他們選擇要連接的數據庫(來自成員資格數據庫中的表)。我需要將選定的連接字符串傳遞給DataSet對象,該對象對於那些用戶將保持不變,直到他們再次登錄。強類型數據集的動態連接字符串

我在想,答案可能是創建一個DataSet對象的部分類,我可以將連接字符串傳遞給構造函數。我不知道如何去解決這個問題。

乾杯

回答

3

你可以用分部類來做到這一點。

假設您的類型化數據集被稱爲HurrDurr:如果是空的第一次連接的內部屬性進行訪問

public partial class HurrDurr 
{ 
    public HurrDurr(string connex) 
    {  
    this._connection = new global::System.Data.SqlClient.SqlConnection(); 
    this._connection.ConnectionString = connex; 
    } 
} 

_connection只初始化。

+0

請問,我在vb.net上試過你的建議,但是我得到一個錯誤:「Error 33 _connection'不是DAL.ds1的成員」。任何想法,我會出錯? – SausageFingers 2010-01-21 07:39:22

+0

@fly我不知道.ds1文件是什麼。您可以查看由類型化數據集工具創建的代碼(展開xsd並查看代碼文件)。 VB版本可能會將連接另存爲其他變量名稱。 – Will 2010-01-21 11:17:21

+0

對不起,我應該更清楚。 DAL.ds1引用項目名稱「DAL」和數據集名稱「ds1」。 「ds1」是從xsd生成的類,我認爲這就是你所說的HurrDurr。 查看代碼後,我在表格適配器中看到_connection成員變量?這是我需要創建一個部分類反對嗎? – SausageFingers 2010-01-21 16:29:49

3

終於到了這個底部。在新的模塊中,我創建了一個表格適配器的部分類,這是我需要更改連接字符串的地方,我最初犯的一個錯誤是沒有指定正確的名稱空間。

下面是部分類我創建了讓我來動態改變我的表適配器之一的連接字符串爲表名爲tblOptions:

Namespace ds1TableAdapters 
    Partial Public Class tblOptionsTableAdapter 
     Sub ChangeConnString(ByVal newConn As String) 
      Me._connection.ConnectionString = newConn 
     End Sub 
    End Class 
End Namespace 

感謝您的幫助威爾,它讓我去的正確的方向。