2013-09-30 20 views
0

我有兩個不同的公司將使用的應用程序。我不想創建兩個單獨的應用程序,因爲當我需要修復錯誤時,生病必須在兩者上執行,我可能會失去原有的功能。基於位置C的連接字符串#

,從兩家公司不同的唯一事情是域名和DB換句話說獨立的網絡(連接字符串)。我怎樣才能讓應用程序使用正確的連接字符串根據用戶使用它的位置?例如,公司A或公司B.我正在考慮使用文本或.ini文件來存儲連接字符串。

能有人請幫助或建議同一類的東西嗎?

在此先感謝

+0

你需要從依賴於用戶或一臺機器在同一臺機器同時連接到數據庫將一直連接到同一個數據庫? – Steve

+0

@Steve一臺機器,一個DB。換句話說,位置A:所有用戶都將連接到一個數據庫。 –

+0

@Werner van den Heever您能否清楚聲明「基於位置/域名或者其他什麼」。事情是什麼時候或基於您想要更改連接字符串的條件?不清楚。 – Rezoan

回答

0

可能這可以幫助你:

這是更好地使用下拉列表選擇登錄頁面上的公司與用戶映射。 ,並根據用戶和公司映射,您可以選擇連接字符串。 使用if else子句。

+0

是的,我已經考慮過這一點,但它不是我想要的方式。謝謝 –

0

我想你可以嘗試連接使用第一個連接字符串爲DB。如果失敗,請使用其他字符串。這種方法可能會有一些意想不到的問題。

+0

不是一個壞主意。雖然仍然不是我認爲的正確方式。此外,未來還會增加更多公司。 –

0

好吧,假設這兩家公司的每臺機器都屬於不同的域(因爲它應該是),那麼你可以檢索使用

Environment.UserDomainName 

的域名,然後在建立連接字符串dinamically,例如您的應用程序的啓動

static class Program 
{ 
    public static string CompanyConnectionString; 

    static void Main() 
    { 
      string domain = Environment.UserDomainName; 
      SqlConnectionStringBuilder sbc = new SqlConnectionStringBuilder(); 
      if(domain == "CompanyA") 
      { 
       sbc.DataSource = "ServerForComapanyA"; 
       sbc.InitialCatalog = "DataBaseCompanyA"; 
       ... etc ... 
       ... other properties of class SqlConnectionStringBuilder ... 
       ... to exactly compose the connection string required 
      } 
      else if(domain == "CompanyB") 
      { 
       sbc.DataSource = "ServerForComapanyB"; 
       sbc.InitialCatalog = "DataBaseCompanyB"; 
       ... etc ... 
       ... other properties of class SqlConnectionStringBuilder ... 
       ... to exactly compose the connection string required 
      } 
      else 
      { 
       MessabeBox.Show("Machine domain name not recognized. Unable to connect"); 
      } 
      Program.ConnectionString = sbc.ConnectionString; 
      .... 

現在,您的程序的每個類都可以引用啓動類並使用Program.CompanyConnectionString
當然,這項工作也可以移動到實用工具類,以解決主類

SqlConnectionStringBuilder
Environment.UserDomainName

就意識到,我不知道,如果你使用SQL Server或不依賴,但ConnectionBuilder類可也爲OLEDB中,ODBC,Oracle和大概所有其他主要提供者具有相同

0

使用一個app.config。在您部署的構建腳本中,根據部署將要發送到的人更新app.config中的連接字符串。