2016-07-15 106 views
0

前言:我已經可以從MySQL Workbench連接到Amazon RDS中的相應數據庫,因此我的用戶名,實例URL,端口號以及密碼都是正確的。將ASP.NET連接到Amazon RDS MariaDB

我創建ASP.NET網上申請,並需要連接到Amazon RDS 小號MariaDB的來代替。我試圖通過web.config或c#代碼的方式做到這一點,但都不起作用。需要諮詢。

方法1

的Web.config:

<add name="rdbs" connectionString="Server=xxxxxx.xxxxxx.ap-southeast-1.rds.amazonaws.com:3306; Database=xxx; Uid=xxxx; Pwd=xxxx;" providerName="MySql.Data.MySqlClient"/> 

對於我的C#代碼側:

string connStr = ConfigurationManager.ConnectionStrings["rdbs"].ConnectionString; 
     using (SqlConnection sqlConnection = new SqlConnection(connStr)) 

方法2

System.Data.SqlClient.SqlConnectionStringBuilder builder = new System.Data.SqlClient.SqlConnectionStringBuilder(); 
    builder["Initial Catalog"] = "xxxx"; 
    builder["Data Source"] = "xxxxx.xxxx.ap-southeast-1.rds.amazonaws.com"; 
    builder["integrated Security"] = true; 
    builder["Uid"] = "xxxx"; 
    builder["Pwd"] = "xxxx"; 

    string connexionString = builder.ConnectionString; 
    SqlConnection connexion = new SqlConnection(connexionString); 
    try { connexion.Open(); return true; } 
    catch { return false; } 

這是我遇到的錯誤的形式:

消息「建立到SQL Server的連接時發生網絡相關或實例特定的錯誤。服務器未找到或無法訪問。驗證實例名稱是否正確,並將SQL Server配置爲允許遠程連接。 (提供者:SQL網絡接口,錯誤:25 - 連接字符串無效)」

感謝

+0

這是否工作在本地網絡中?即連接到當地的mariadb實例? – Hackerman

回答

0

這實際上解決了它

  1. 抓鬥MySql.Data.Entity從的NuGet

  2. 有這在web.config中

    <add name="connRDB" connectionString="Data Source=xxxxx.xxxx.ap-southeast-1.rds.amazonaws.com;port=3306;Initial Catalog=xxxxx;User Id=xxxxx;password=xxxx" providerName="MySql.Data.MySqlClient" /> 
    
  3. 在代碼方面

    string constr = ConfigurationManager.ConnectionStrings["connRDB"].ConnectionString; 
    using (MySqlConnection conn = new MySqlConnection(constr)) 
         { 
          using (MySqlCommand cmd = new MySqlCommand("Select * FROM orders")) 
          { 
           using (MySqlDataAdapter sda = new MySqlDataAdapter()) 
           { 
            cmd.Connection = conn; 
            sda.SelectCommand = cmd; 
            using (DataTable dt = new DataTable()) 
            { 
             sda.Fill(dt); 
             GridView1.DataSource = dt; 
             GridView1.DataBind(); 
            } 
           } 
          } 
         }