2016-05-12 40 views
0

所以我使用我的app.config文件中的連接字符串連接到我的數據庫。我也試圖讓它更安全,以便我的SqlCOnnectionStringBuilder從app.config文件中檢索它的信息。爲了給你我的意思是什麼的一些代碼一個更好的主意:使用錯誤數據的SqlConnectionStringBuilder

的app.config:

爲連接建設者
<connectionStrings> 
    <clear/> 
    <add name="connection" 
     connectionString="Data Source=SERVERIP; Initial Catalog=DB; 
         Port=3306; User ID=USERNAME; Password=PASSWORD;" 
     providerName="System.Data.SqlClient" /> 
</connectionStrings> 

方法:

private void BuildConnectionString() 
    { 
     ConnectionStringSettings settings = 
      ConfigurationManager.ConnectionStrings["connection"]; 

     if (null != settings) 
     { 
      MySqlConnectionStringBuilder builder = 
       new MySqlConnectionStringBuilder(settings.ConnectionString); 

      conString = builder.ConnectionString; 
     } 
    } 

不知怎的,用戶ID獲取與更換由於IP,端口和初始目錄未被替換,因此我的電腦名稱非常奇怪。

哦和I followed this handy article here on MSDN

有人可以告訴我我在做什麼錯嗎?

編輯: 以下是完整的錯誤我得到:

型 'MySql.Data.MySqlClient.MySqlException' 未處理的異常發生在MySql.Data.dll

更多信息:主機'nameofpc'不允許連接到這個MariaDB服務器

+1

我不使用MySql,但問題可能是您的連接字符串正在使用MSSQL提供程序。嘗試使用正確的提供者,或者只是將字符串放在常規appSetting中,而不是connectionStrings部分。 – Crowcoder

+0

你是什麼意思Crowcoder?並stuartd,這並沒有太多的工作 –

+0

@ B.Hulshof,你爲什麼甚至需要建設者?看起來多餘。試試'conString = settings.ConnectionString;' – Crowcoder

回答

-2

在我看來,問題是MariaDB服務器只接受來自某組主機的傳入連接。很可能服務器默認只接受本地主機連接。我認爲這個鏈接可能會有幫助:https://mariadb.com/kb/en/mariadb/configuring-mariadb-for-remote-client-access/

+0

這不是導致錯誤 –

+0

這個答案如果這個答案直截了當或偏離主題值得downvoting當他得到的錯誤點正是我提到的原因? – Zalomon

+0

你有沒有谷歌你收到的錯誤? – Zalomon