簡體   English   中英

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

[英]Connecting to mysql on 000webhost using C#

我只是試圖在控制台上讀取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();
        }

您需要手動構建連接字符串或使用MySqlConnectionStringBuilder MySql使用與您使用的SQL Server和SqlConnectionStringBuilder不同的格式。 您還需要使用MySQL庫, SqlConnectionSqlCommand等都是專門為SQL Server構建的。

MySQL連接器

對於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()))

在SO中檢查相關帖子

還需要指出的是,您只能從表中選擇一列,可以看出

new SqlCommand("Select name FROM Users");

而嘗試檢索兩列值,這是不正確的

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

000webhost空閑服務器不允許外部連接到服務器數據庫。

您只能從存儲在服務器上的PHP腳本中使用數據庫。

您可以使用PHP從數據庫中獲取數據,並且它將返回。因此,我建議您使用C#這樣的api(如api)使用php。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM