使用C#连接到000webhost上的mysql

时间:2014-10-20 17:03:21

标签: c# mysql

我只是想尝试将batabase中的内容读取到控制台上,但我总是在conn.Open()行上获得异常。以下是所有代码:

        SqlConnectionStringBuilder conn_string = new SqlConnectionStringBuilder();

        conn_string.DataSource = "mysql14.000webhost.com"; // Server 
        conn_string.UserID = "a7709578_codecal";
        conn_string.Password = "xxxxx";
        conn_string.InitialCatalog = "a7709578_codecal"; // Database name

        SqlConnection conn = new SqlConnection(conn_string.ToString());

        conn.Open();
        SqlCommand cmd = new SqlCommand("Select name FROM Users");
        SqlDataReader reader = cmd.ExecuteReader();

        while (reader.Read())
        {
            Console.WriteLine("{1}, {0}", reader.GetString(0), reader.GetString(1));
        }

        reader.Close();
        conn.Close();

        if (Debugger.IsAttached)
        {
            Console.ReadLine();
        }

3 个答案:

答案 0 :(得分:1)

您需要手动构建连接字符串或使用MySqlConnectionStringBuilder。 MySql使用的格式与SQL Server和您正在使用的SqlConnectionStringBuilder不同。您还需要使用MySQL库,SqlConnectionSqlCommand等都是专门为SQL Server构建的。

MySQL connectors

答案 1 :(得分:1)

对于MySQL数据库,您使用的是错误的提供程序。您在发布的代码中使用的那些类是SQL Server。使用MySQL提供程序相关类

,您的代码应如下所示
MySqlConnectionStringBuilder conn_string = new MySqlConnectionStringBuilder();
conn_string.Server = "mysql14.000webhost.com";
conn_string.UserID = "a7709578_codecal";
conn_string.Password = "xxxxxxx";
conn_string.Database = "a7709578_codecal";

using (MySqlConnection conn = new MySqlConnection(conn_string.ToString()))

检查Related post in SO

另外要指出的是,您只能从表格中选择一列

new SqlCommand("Select name FROM Users");

而尝试检索两个列值,这是不正确的

Console.WriteLine("{1}, {0}", reader.GetString(0), reader.GetString(1))

答案 2 :(得分:1)

000webhost免费服务器不允许与服务器数据库的外部连接。

您只能使用存储在服务器上的PHP脚本中的数据库。

你可以使用PHP从数据库中获取数据,它会返回。所以我建议你使用来自C#的php,如api。