2017-07-16 30 views
0

我正在構建需要連接到AWS RDS MySQL數據庫的Xamarin.Mac應用程序(C#)。如何使用證書頒發機構從C#連接到RDS MySQL數據庫?

我的代碼:

using (SqlConnection connection = new SqlConnection(ConnectionString)) 
      { 
       connection.Open(); 
       using (SqlCommand command = new SqlCommand("SELECT * FROM store", connection)) 
       using (SqlDataReader reader = command.ExecuteReader()) 
       { 
        while (reader.Read()) 
        { 
         Console.WriteLine("{0} {1} {2}", 
          reader.GetInt32(0), reader.GetString(1), reader.GetString(2)); 
        } 
       } 
      } 

哪裏我的連接字符串的格式爲:

ConnectionString = "Server={0};Database={1}Uid={2};Pwd={3}"; 

不過,我似乎無法連接。然而,通過MySqlWorkbench使用相同的主機和憑據,我可以很好地連接。我看到我的RDS實例的版本設置爲證書頒發機構設置爲rds-ca-2015(沒有選項而不是將其設置爲此)。

如何使用上面的C#代碼連接到此RDS數據庫?

回答

0

原來這是不是與我最初認爲的證書頒發機構有關。

但是,我想我會發佈一個答案,因爲我花了很長時間才找到解決方案,其他開發人員希望能找到它的用處。

所以對於其他開發商誰正在使用Xamarin.Mac構建一個OSX的應用程序,你需要設置項目中使用Xamarin.Mac .NET 4.5 Framework。這是而不是當啓動一個新的OSX項目時的默認值,所以你必須改變它並重新定位你的包。然後,只需添加NuGet包MySql.Data和更新您的連接代碼:

using (MySqlConnection connection = new MySqlConnection(ConnectionString)) 
     { 
      connection.Open(); 
      using (MySqlCommand command = new MySqlCommand("SELECT * FROM store", connection)) 
      using (MySqlDataReader reader = command.ExecuteReader()) 
      { 
       while (reader.Read()) 
       { 
        Console.WriteLine("{0} {1} {2}", 
         reader.GetInt32(0), reader.GetString(1), reader.GetString(2)); 
       } 
      } 
     } 

工程等之後,一個魅力。

相關問題