0

前言:我已经并且可以从 MySQL Workbench 连接到 Amazon RDS 中的各个数据库,从而使我的用户名、实例 url、端口号以及密码正确。

我正在为 ASP.NET 创建一个在线应用程序,并且需要连接到 Amazon RDS 的 MariaDB。我尝试通过 web.config 或 c# 代码方式来实现,但两者都不起作用。需要建议。

方法一

网络配置:

<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))

方法二

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 - 连接字符串无效)”

谢谢!

4

1 回答 1

0

这实际上解决了它。

  1. 从 Nuget 中获取 MySql.Data.Entity

  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();
                        }
                    }
                }
            }
    
于 2016-08-15T06:09:55.240 回答