C# mysqlに接続してupdateを実行する

  • 作成日 2022.01.17
  • 更新日 2022.03.03
  • C#
C# mysqlに接続してupdateを実行する

C#で、mysqlに接続してupdateを実行するサンプルコードを記述してます。Visual Studioは、2022を使用してます。

環境

  • OS windows10 pro 64bit
  • Microsoft Visual Studio Community 2022

パッケージインストール

mysqlに接続するために、まずは「MySql.Data」をインストールします。
※ここでは、コンソールアプリでプロジェクトを作成してます。

ソリューションを右クリックして「NuGetパッケージの管理」をクリックします。

「参照」をクリックして「mysql」と検索して「Mysql.Data」をインストールしておきます。

updateを実行

updateを実行して以下のテーブル「tbl」を更新してみます。

「Program.cs」に、以下のコードを記述します。

using MySql.Data.MySqlClient;
using System;

namespace MysqlApp
{
    class Program
    {
        static void Main(string[] args)
        {
            // 接続文字列
            var connectionString =
               "Server=192.168.100.42;Port=3306;Uid=testuser;Pwd=password;Database=foo";

            // クエリ
            var sql = "UPDATE tbl SET name = @name WHERE id = @id";

            // インスタンスを生成
            using (var connection = new MySqlConnection(connectionString))

            using (var command = new MySqlCommand(sql, connection))
            {               

                try
                {
                    // 接続
                    connection.Open();
                                          
                    command.Connection = connection;
                    command.CommandText = sql;
                    
                    command.Parameters.AddWithValue("@name", "hoge");
                    command.Parameters.AddWithValue("@id", 1);

                    var result = command.ExecuteNonQuery();
                    
                    // 更新されなかった場合
                    if (result != 1)
                    {
                        Console.WriteLine("update ERROR");
                    }

                    //クローズ
                    connection.Close();
                }
                catch (MySqlException me)
                {
                    Console.WriteLine("ERROR: " + me.Message);
                }

                Console.ReadKey();

            }
        }
    }
}

実行するとid「1」のnameが更新されていることが確認できます。