2015-04-06 122 views
2

我正在使用nopCommerce,我需要刪除settings.txt文件中的連接字符串並插入web.config文件。我怎樣才能做到這一點?更改nopCommerce的連接字符串?

+0

有什麼*您*試過嗎?更清楚地「刪除」連接字符串 - 這是否意味着你想編程*編輯*該文本文件? –

+1

如果我想要做的是改變我如何與數據庫通信的方式,如在nopCommerce中的連接字符串是在settings.txt文件中,而不是在web.config –

回答

0

請下Nop.Web項目添加到您的web.config:

<connectionStrings> 
<add name="MyConnectionString" 
connectionString="Data Source=serverName;Initial Catalog=DBName;Persist Security Info=False;UserID=userName;Password=password" 
</connectionStrings> 

問候。

3

將連接字符串移出settings.txt並移入web.config最直接的方法是修改Nop.Core.Data.DataSettingsManager。具體爲LoadSettings()SaveSettings()方法。只要這兩種方法讀取和寫入配置,就可以將連接字符串存儲在任何需要的位置(理想情況下在web.config中)。

DataSettingsManager更新,以支持存儲在web.config中的連接字符串的一個粗略的例子可以在這個要點中找到:http://git.io/vUPcI只需連接字符串從SETTINGS.TXT複製到web.config文件並命名連接「DefaultConnection」或相應地調整代碼。

1

除了將連接添加到web.config之外,還必須指定providerName =「sqlserver」。

特異);初始目錄=;集成 安全性= FALSE;用戶ID =;密碼=;連接 超時= 30;加密=真」 的providerName = 「SQLSERVER」/>

這是因爲在EfDataProviderManager有Nop.Data對提供者的名稱進行檢查,如果你把正常

的providerName =「System.Data.SqlClient的」

將拋出一個異常
+0

這是非常重要的。在上面的其他答案中,我沒有注意到連接字符串中的細微差別,並使用了典型的providerName。 –

1

只是做兩步

  1. 更換二方法LoadSettings\nopCommerce\Libraries\Nop.Core\Data\DataSettingsManager.csSaveSettings。從@Stephen Kiningham

    /// <summary> 
    /// Load settings 
    /// </summary> 
    /// <param name="filePath">File path; pass null to use default settings file path</param> 
    /// <returns></returns> 
    public virtual DataSettings LoadSettings(string filePath = null) 
    {    
        try 
        { 
         System.Configuration.Configuration webConfig = WebConfigurationManager.OpenWebConfiguration(HttpRuntime.AppDomainAppVirtualPath); 
         return new DataSettings 
         { 
          DataConnectionString = webConfig.ConnectionStrings.ConnectionStrings["DefaultConnection"].ConnectionString, 
          DataProvider = webConfig.ConnectionStrings.ConnectionStrings["DefaultConnection"].ProviderName 
         }; 
        } 
        catch (NullReferenceException) 
        { 
         return new DataSettings(); 
        } 
    } 
    
    /// <summary> 
    /// Save settings to a file 
    /// </summary> 
    /// <param name="settings"></param> 
    public virtual void SaveSettings(DataSettings settings) 
    {    
        if (null == settings) throw new ArgumentNullException("settings"); 
    
        System.Configuration.Configuration webConfig = WebConfigurationManager.OpenWebConfiguration(HttpRuntime.AppDomainAppVirtualPath); 
    
        webConfig.ConnectionStrings.ConnectionStrings["DefaultConnection"].ConnectionString = settings.DataConnectionString; 
        webConfig.ConnectionStrings.ConnectionStrings["DefaultConnection"].ProviderName = settings.DataProvider; 
    
        webConfig.Save(); 
    } 
    
  2. 的鏈接代碼添加連接字符串到您的web配置的web.config

    <connectionStrings> 
        <add name="DefaultConnection" 
         connectionString=" Data Source=localhost;Initial Catalog=nopcommerce;Integrated Security=True;Persist Security Info=False" 
         providerName="sqlserver"> 
        </add> 
    </connectionStrings>