首頁  >  問答  >  主體

C#獨立應用程式直接遠端存取MySQL到託管伺服器

<p>根據我的了解,我在Putty、SSH、DDNS等方面進行了大量的研究,以便將我的PC C#獨立應用程式的動態IP連接到託管的MySQL資料庫。由於它是動態IP,我每次都必須將IP位址新增到白名單中。有人可以幫我使用C#程式碼來解決這個問題嗎?我只想直接使用連接字串連接託管的MySQL,並進行新增、更新、刪除操作。謝謝。 </p>
P粉033429162P粉033429162430 天前521

全部回覆(1)我來回復

  • P粉821231319

    P粉8212313192023-08-17 13:01:58

    要從您的C#獨立應用程式連接到託管在遠端伺服器上的MySQL資料庫,您可以使用MySQL Connector/NET程式庫。該庫提供了建立連接和執行各種資料庫操作所需的工具。以下是您可以執行的方法:

    1- 安裝MySQL Connector/NET: 如果您尚未安裝MySQL Connector/NET套件,請在C#專案中安裝它。您可以透過NuGet軟體套件管理器進行安裝。搜尋“MySql.Data”,並安裝官方的MySQL Connector/NET套件。

    2- 連接字串: 您需要建立一個連接字串,其中包含連接到MySQL資料庫所需的詳細資訊。由於您提到您的IP是動態的,並且每次都需要將其添加到白名單中,您可能需要每次調整連接字串。以下是連接字串的基本範例:

    string server = "your-server-ip";
    string database = "your-database-name";
    string uid = "your-username";
    string password = "your-password";
    
    string connectionString = $"Server={server};Database={database};Uid={uid};Pwd={password};";

    3- 執行資料庫操作: 準備好連接字串後,您可以使用MySQL Connector/NET程式庫執行資料庫操作,例如INSERT、UPDATE、DELETE等。以下是執行INSERT操作的範例:

    using MySql.Data.MySqlClient;
    
    // ...
    
    using (MySqlConnection connection = new MySqlConnection(connectionString))
    {
        connection.Open();
    
        string query = "INSERT INTO your_table (column1, column2) VALUES (@val1, @val2)";
        using (MySqlCommand command = new MySqlCommand(query, connection))
        {
            command.Parameters.AddWithValue("@val1", value1);
            command.Parameters.AddWithValue("@val2", value2);
    
            command.ExecuteNonQuery();
        }
    }

    類似地,您可以修改UPDATE和DELETE操作的查詢。

    請記住,出於安全性原因,最好使用參數化查詢(如上所示)來防止SQL注入攻擊。

    關於動態IP問題,如果您的IP位址經常更改並且每次都需要將其添加到白名單中,您可以考慮設定VPN或使用動態DNS(DDNS)服務,以獲取與您的動態IP相對應的一致主機名。這可以為您提供更穩定的連接點並簡化白名單設定。此外,您可能還希望與您的託管提供者討論是否有更安全且可管理的遠端連線選項,例如設定SSH隧道或使用虛擬私人網路。

    回覆
    0
  • 取消回覆