尝试使用C#从本地计算机上Godaddy上的Mysql数据库访问(查询)内容

时间:2017-08-25 18:06:29

标签: c# sql-server database

我正在尝试使用c#从本地机器上在线托管我的godaddy帐户的mysql数据库。我认为这将是一个简单的交易,因为我编写PHP来访问并从我的godaddy帐户写入数据库,它工作正常。但是,我的c#代码给了我一些问题。

每当我尝试“打开”连接时,我都会收到此错误消息:

建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。

我很困惑,因为我的PHP代码连接没有任何问题所以我知道服务器正在运行,用户名是可行的,密码很好,并且可以访问表。我也可以毫无问题地“ping”服务器。

c#代码非常简单。此时,我只是尝试使用ID号从数据库中读取信息,但我希望在更复杂的场景中扩展此功能,但是现在我只想查看是否可以从数据库中提取字符串。

我已经阅读了这篇文章,我只是举例说明如何使用Microsoft产品修改mysql服务器,这不是我想要的。我没有从我的机器托管mysql服务器。我是从Godaddy那里运行的。我已经检查了我的godaddy用户对此用户名和数据库的权限,并且他们启用了“所有权限”。另外,我已经读过一些计算机需要修改Windows防火墙来运行我正在编写的这个c#实用程序。这不会起作用,因为我希望将来发布这个实用程序,而最终用户不需要在他们的Windows防火墙上启用奇怪的东西。

有什么想法吗?

        string queryString = @"SELECT * FROM table1 WHERE id = 44";    
        string connectionString = @"server=222.222.22.22;"+
                                    "database=database1;"+
                                    "user id=dbuserid;"+
                                    "password='password';"+
                                    "Trusted_Connection=yes;"+
                                    "connection timeout=15";

        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            try
            {
                connection.Open();
                SqlDataReader myReader = null;
                SqlCommand myCommand = new SqlCommand(queryString, connection);
                myReader = myCommand.ExecuteReader();
                while (myReader.Read())
                {
                    string sdfds = myReader["Column1"].ToString();
                }
            }
            catch (Exception E2)
            {
                label1.Text = E2.ToString();
            }
         }

它总是按照预期在“connection.Open()”崩溃。我可以在Godaddy端做些什么来让我从c#应用程序中读取数据库吗?或者这完全是防火墙问题?我可以在某些端口中编程以绕过防火墙问题吗?

2 个答案:

答案 0 :(得分:1)

由Oracle添加NuGet包MySql.Data,https://www.nuget.org/packages/MySql.Data然后使用



using MySql.Data.MySqlClinet;

and in your method:

using(MySqlConnection ... = new MySqlConnection(connectionString))
{
  using (MySqlCommand cmd ...
}




答案 1 :(得分:0)

您无法使用SQL Server的.NET提供程序(System.Data.SqlClient命名空间对象)连接到MySQL。相反,您需要使用managed provider for MySQL或MySQL ODBC驱动程序和System.Data.Odbc ADO.NET对象。