IRONSOFTWAREHOME
開発者向けアップデート

C# MySQL Connection(開発者向けの仕組み)

Jacob Mellor、Ironチームの最高技術責任者(CTO)
Jacob Mellor
Updated: 2026年4月21日

C# MySQL統合の紹介

C# アプリケーションを MySQL データベースに接続することで、開発者は関係データベースの強力さを活用してデータの保存、取得、管理を効率的に行うことができます。 このガイドは、MySQL を C# アプリケーションと統合し、IronPDF ライブラリを使用して、MySQL データベース内のデータから PDF を生成する方法を段階的に紹介します。

前提条件

このガイドに従うには、以下が必要です。

  • Visual Studio または任意の C# IDE
  • MySQL データベース(インストール済みかつ稼働中)
  • IronPDF ライブラリ(PDF 生成用)

MySQL データベースの設定

MySQL のインストールと設定

  1. mysql.com から MySQL の最新バージョンをダウンロードします。
  2. インストーラーを実行し、セットアップ手順に従います。 "開発者デフォルト"を選択して MySQL サーバーと MySQL Workbench を含めます。
  3. セットアップ中に MySQL ルートユーザーの資格情報を設定し、MySQL サービスが稼働していることを確認します。

サンプルデータベースとテーブルの作成

  1. MySQL Workbench を開き、サーバーに接続します。
  2. 新しいデータベースおよびサンプルテーブルを SQL コマンドを使用して作成します。
CREATE DATABASE SampleDB;
USE SampleDB;
CREATE TABLE Employees (
    EmployeeID INT PRIMARY KEY AUTO_INCREMENT,
    FirstName VARCHAR(50),
    LastName VARCHAR(50),
    Position VARCHAR(50),
    Salary DECIMAL(10, 2)
);
Text
  1. サンプルデータを挿入します。
INSERT INTO Employees (FirstName, LastName, Position, Salary) 
VALUES ('John', 'Doe', 'Software Developer', 80000),
       ('Jane', 'Smith', 'Data Analyst', 75000);
Text

MySQL ユーザーのリモートアクセス設定 (オプション)

リモートアクセス用に、必要な権限を持つ MySQL ユーザーを作成します。

CREATE USER 'remoteUser'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON SampleDB.* TO 'remoteUser'@'%';
FLUSH PRIVILEGES;
Text

C#とMySQLデータベースの接続

C#でMySql.Dataライブラリをインストールする

C# アプリケーションを MySQL に接続するには、MySQL Connector/NET ライブラリ(Connector/NET と呼ばれることが多い)を使用します。 これは MySQL の公式 .NET ドライバーで、NuGet 経由でインストールできます。

  1. Visual Studioを開き、新しいC#コンソールアプリケーションを作成します。
  2. NuGet パッケージ マネージャーを使用して MySql.Data ライブラリを追加します:
    • プロジェクトを右クリック > NuGet パッケージの管理 > 参照 > MySql.Data を探してインストールします。

接続コードを書く

以下のコード例は、MySQL に接続を確立する方法を示しています。

using System;
using MySql.Data.MySqlClient;

public class Program
{
    // Connection string containing the server, database, user credentials, etc.
    private string connectionString = "Server=localhost;Database=SampleDB;User ID=root;Password=yourpassword;";
    
    private void Initialize()
    {
        // Create a MySQL connection object
        MySqlConnection connection = new MySqlConnection(connectionString);
        try
        {
            connection.Open();
            Console.WriteLine("Connected to MySQL Database!");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error: {ex.Message}");
        }
        finally
        {
            connection.Close(); // Ensure the connection is closed after use
        }
    }
}

説明: -**接続文字列:**サーバー、データベース名、ユーザー ID、パスワードなどの詳細が含まれます。

  • **MySqlConnection:**接続を確立するために使用されます。
  • **Open() メソッド:**接続を開こうとします。 -**例外処理:**例外をキャッチして接続エラーを適切に処理します。

DNS SRV レコードを使用した接続 (オプション)

アプリケーションがクラウドにホストされているか、DNS SRV レコードを介して MySQL データベースに接続する必要がある場合は、サーバー名の代わりにデータベースの IP に解決される対応する DNS エントリを使用できます。

string connectionString = "Server=mysql.example.com;Database=SampleDB;User ID=root;Password=yourpassword;";

コネクションプール

デフォルトで、MySQL Connector/NET はコネクションプールをサポートしており、データベース接続をより効率的に管理するのに役立ちます。 コネクションプールは、プールから既存の接続を再利用することで、接続を開閉するオーバーヘッドを削減します。

コネクションプールの動作をカスタマイズしたい場合は、接続文字列を次のように調整できます。

string connectionString = "Server=localhost;Database=SampleDB;User ID=root;Password=yourpassword;Pooling=true;";

一般的なエラーの処理

一般的な問題には、誤った接続文字列、ファイアウォールの制限、または MySQL サービスが稼働していないことが含まれます。 すべての構成詳細が正しいこと、および MySQL サービスがアクティブであることを確認してください。

C#とMySQLでCRUD操作を実行する

データベース操作用のC#クラスを作成する

コードの整理のために、すべてのデータベース操作を処理するDatabaseHelperクラスを作成します。 このクラスは、データの挿入、読み取り、更新、および削除 (CRUD) 操作のメソッドを含みます。

using System;
using MySql.Data.MySqlClient;

public class DatabaseHelper
{
    private string connectionString = "Server=localhost;Database=SampleDB;User ID=root;Password=yourpassword;";

    // Method to insert a new employee record
    public void InsertEmployee(string firstName, string lastName, string position, decimal salary)
    {
        using (var connection = new MySqlConnection(connectionString))
        {
            string query = "INSERT INTO Employees (FirstName, LastName, Position, Salary) VALUES (@FirstName, @LastName, @Position, @Salary)";
            MySqlCommand cmd = new MySqlCommand(query, connection);

            // Add parameters to prevent SQL injection
            cmd.Parameters.AddWithValue("@FirstName", firstName);
            cmd.Parameters.AddWithValue("@LastName", lastName);
            cmd.Parameters.AddWithValue("@Position", position);
            cmd.Parameters.AddWithValue("@Salary", salary);

            connection.Open();
            cmd.ExecuteNonQuery(); // Execute the insert command
        }
    }
}

説明:

  • パラメータ化: @Parameterを使用することでSQLインジェクションのリスクが減ります。
  • connection.Open(): MySQL 接続を開きます。
  • **cmd.ExecuteNonQuery():**挿入クエリを実行します。

MySQL データベースへのデータの挿入

新しい従業員データを追加するには、InsertEmployeeメソッドを呼び出してください。

DatabaseHelper dbHelper = new DatabaseHelper();
dbHelper.InsertEmployee("Alice", "Brown", "Project Manager", 90000);

データの取得と表示

Retrieve data and display it in the console:

public void GetEmployees()
{
    using (var connection = new MySqlConnection(connectionString))
    {
        string query = "SELECT * FROM Employees";
        MySqlCommand cmd = new MySqlCommand(query, connection);
        connection.Open();

        using (MySqlDataReader reader = cmd.ExecuteReader())
        {
            while (reader.Read())
            {
                Console.WriteLine($"{reader["FirstName"]} {reader["LastName"]}, Position: {reader["Position"]}, Salary: {reader["Salary"]}");
            }
        }
    }
}

説明:

  • **ExecuteReader():**選択クエリを実行し、MySqlDataReader オブジェクトを返します。
  • **reader.Read():**結果セットを反復処理し、各従業員の詳細を表示します。

レコードの更新と削除

従業員の給料を更新する例は次のとおりです。

public void UpdateEmployeeSalary(int employeeId, decimal newSalary)
{
    using (var connection = new MySqlConnection(connectionString))
    {
        string query = "UPDATE Employees SET Salary = @Salary WHERE EmployeeID = @EmployeeID";
        MySqlCommand cmd = new MySqlCommand(query, connection);

        // Parameterize the SQL command
        cmd.Parameters.AddWithValue("@Salary", newSalary);
        cmd.Parameters.AddWithValue("@EmployeeID", employeeId);

        connection.Open();
        cmd.ExecuteNonQuery(); // Execute the update command
        Console.WriteLine("Employee salary updated successfully!");
    }
}

**更新コマンド:**パラメーター化されたクエリを使用して、EmployeeID に基づいて Salary 列を更新します。

MySQL データを IronPDF を使って PDF 生成

IronPDFの紹介

IronPDF は、開発者が C# アプリケーション内で簡単に PDF ドキュメントを作成、編集、操作できる強力なライブラリです。 さまざまな PDF 機能をサポートしており、自動レポート生成、ドキュメント操作、HTML から PDF への変換が必要となるデータ駆動型アプリケーションにとって理想的なツールです。 動的ウェブページを PDF ファイルに変換する必要がある場合でも、ゼロからカスタム PDF を生成する必要がある場合でも、IronPDF は数行のコードでそのプロセスを簡素化します。

IronPDFの主な機能

  • HTML から PDF への変換: IronPDFの優れた機能の 1 つは、 HTML コンテンツを完全にフォーマットされた PDF ドキュメントに変換する機能です。 この機能は、動的なウェブコンテンツからレポートを生成する場合やウェブ形式で保存されたデータを処理する場合に特に便利です。
  • PDF の編集: IronPDF を使用すると、テキスト、画像、表などのコンテンツの追加、削除、変更など、既存の PDF を編集できます。 これは、既存のドキュメントを処理または更新する必要のあるアプリケーションに最適です。
  • PDF の結合と分割: IronPDFを使用すると、複数の PDF を 1 つのドキュメントに簡単に結合したり、大きな PDF を小さなファイルに分割したりできます。 This feature is useful for organizing and managing large collections of documents. *スタイル設定とカスタマイズ: HTML から PDF を生成する場合、CSS を使用してドキュメントのスタイルを設定し、アプリケーションのデザインに一致するカスタム レイアウトを実現できます。 IronPDF は PDF の外観を完全に制御することができ、特定の要件に見合った内容にすることを保証します。

C#プロジェクトでIronPDFを設定する

IronPDF を使用するには、NuGet パッケージマネージャーを使用して Visual Studio にインストールします。

PM > Install-Package IronPdf

MySQL データを PDF 形式に変換

ここに従業員データの PDF レポートを作成する方法を示した完全なコード例があります。

using System;
using MySql.Data.MySqlClient;
using IronPdf;

public class Program
{
    private static string connectionString = "Server=localhost;Database=SampleDB;User ID=root;Password=yourpassword;";

    public static void Main(string[] args)
    {
        // Perform CRUD operations
        DatabaseHelper dbHelper = new DatabaseHelper();
        // Insert a new employee
        dbHelper.InsertEmployee("Alice", "Brown", "Project Manager", 90000);
        // Display employees
        dbHelper.GetEmployees();
        // Update an employee's salary
        dbHelper.UpdateEmployeeSalary(1, 95000);
        // Generate a PDF report
        dbHelper.GenerateEmployeeReportPDF();
        Console.WriteLine("Operations completed.");
    }
}

public class DatabaseHelper
{
    private string connectionString = "Server=localhost;Database=SampleDB;User ID=root;Password=yourpassword;";

    // Insert employee into database
    public void InsertEmployee(string firstName, string lastName, string position, decimal salary)
    {
        using (var connection = new MySqlConnection(connectionString))
        {
            string query = "INSERT INTO Employees (FirstName, LastName, Position, Salary) VALUES (@FirstName, @LastName, @Position, @Salary)";
            MySqlCommand cmd = new MySqlCommand(query, connection);
            cmd.Parameters.AddWithValue("@FirstName", firstName);
            cmd.Parameters.AddWithValue("@LastName", lastName);
            cmd.Parameters.AddWithValue("@Position", position);
            cmd.Parameters.AddWithValue("@Salary", salary);
            connection.Open();
            cmd.ExecuteNonQuery();
            Console.WriteLine($"Employee {firstName} {lastName} inserted successfully!");
        }
    }

    // Get employees from the database and display them
    public void GetEmployees()
    {
        using (var connection = new MySqlConnection(connectionString))
        {
            string query = "SELECT * FROM Employees";
            MySqlCommand cmd = new MySqlCommand(query, connection);
            connection.Open();

            using (MySqlDataReader reader = cmd.ExecuteReader())
            {
                Console.WriteLine("\nEmployee List:");
                while (reader.Read())
                {
                    Console.WriteLine($"{reader["EmployeeID"]} - {reader["FirstName"]} {reader["LastName"]}, Position: {reader["Position"]}, Salary: {reader["Salary"]}");
                }
            }
        }
    }

    // Update the salary of an employee
    public void UpdateEmployeeSalary(int employeeId, decimal newSalary)
    {
        using (var connection = new MySqlConnection(connectionString))
        {
            string query = "UPDATE Employees SET Salary = @Salary WHERE EmployeeID = @EmployeeID";
            MySqlCommand cmd = new MySqlCommand(query, connection);
            cmd.Parameters.AddWithValue("@Salary", newSalary);
            cmd.Parameters.AddWithValue("@EmployeeID", employeeId);
            connection.Open();
            cmd.ExecuteNonQuery();
            Console.WriteLine($"Employee ID {employeeId}'s salary updated to {newSalary}.");
        }
    }

    // Generate a PDF report of all employees
    public void GenerateEmployeeReportPDF()
    {
        string htmlContent = "<h1>Employee Report</h1><table border='1'><tr><th>EmployeeID</th><th>First Name</th><th>Last Name</th><th>Position</th><th>Salary</th></tr>";
        
        using (var connection = new MySqlConnection(connectionString))
        {
            string query = "SELECT * FROM Employees";
            MySqlCommand cmd = new MySqlCommand(query, connection);
            connection.Open();

            using (MySqlDataReader reader = cmd.ExecuteReader())
            {
                while (reader.Read())
                {
                    htmlContent += $"<tr><td>{reader["EmployeeID"]}</td><td>{reader["FirstName"]}</td><td>{reader["LastName"]}</td><td>{reader["Position"]}</td><td>{reader["Salary"]}</td></tr>";
                }
            }
        }
        
        htmlContent += "</table>";

        // Use IronPDF to convert HTML to PDF
        ChromePdfRenderer renderer = new ChromePdfRenderer();
        PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("EmployeeReport.pdf");
        Console.WriteLine("PDF Report generated successfully!");
    }
}

コードの内訳

  1. MySQLデータベースへの接続:

    • connectionStringはMySQLサーバー、データベース、ユーザー、およびパスワードを定義します。
    • MySqlCommandでCRUD操作を行います。
  2. 挿入操作 (InsertEmployee):

    • パラメータ化クエリ(@FirstName, MySqlCommandを使用します。
    • 接続を開いた後(ExecuteNonQuery()がINSERT SQL文を実行します。
  3. 読取操作 (GetEmployees):

    • すべての従業員レコードを取得するためにSELECT *クエリを実行します。
    • 結果セットを反復処理し、各レコードをコンソールに表示するためにMySqlDataReaderを使用します。
  4. 更新操作 (UpdateEmployeeSalary):

    • このメソッドはnewSalaryを受け取り、従業員の給与を更新します。
    • パラメータ化された UPDATE SQL クエリを使用します。
  5. PDF 生成(GenerateEmployeeReportPDF):

    • シンプルなテーブル構造で従業員データを HTML 文字列に収集します。
    • HTMLコンテンツはPDFレポートを生成するためにIronPDFのRenderHtmlAsPdfメソッドに渡されます。
    • 結果として得られるPDFはEmployeeReport.pdfとして保存されます。

結論

この記事では、C# アプリケーションに MySQL を統合するための基本ステップを紹介しました。 データベースの設定、CRUD 操作の実行から IronPDF を使用した PDF の生成まで、データ駆動型アプリケーションを構築するために重要な基本的なトピックを幅広く取り上げました。 以下に主要概念の概要を示します。

  • MySQL と C# の統合: MySql.Data ライブラリを使用して MySQL データベースに接続し、データベース接続を管理し、パラメーター化されたクエリを使用して CRUD 操作を実行する方法を説明しました。 これにより、データが安全かつ効率的に保存、更新、取得できるようになります。
  • **CRUD 操作の実行:**従業員データの挿入、更新、読み取りのためのサンプル メソッドを使用して、このロジックを拡張し、実際のデータベース内の他の種類のレコードを管理できます。 パラメータ化クエリを使用することで、SQL インジェクション攻撃を軽減し、アプリケーションのセキュリティを確保します。
  • PDF 生成用のIronPDF : IronPDF を使用すると、動的な HTML コンテンツからプロフェッショナルな外観の PDF を簡単に生成できます。 MySQL から取得したデータを HTML テーブルに変換することで、カスタマイズされたレポートを作成し、PDF として保存できます。これにより、請求書、レポート、サマリーなどの生成が容易になります。 IronPDF のわかりやすい API により、C# 開発者がアプリケーション内で PDF 生成を扱うための優れたツールとなります。

C# と MySQL を組み合わせることで、開発者はデータの管理と高度な機能(たとえば PDF レポートの生成)を提供しつつ、データを保存および管理する強力なアプリケーションを構築できます。 これらの機能は、金融からヘルスケアに至るまで、厳密なデータ管理とレポート作成が重要な様々な業界で役立ちます。

C# アプリケーションに PDF 生成を組み込むことを考えている開発者向けに、フル機能を試すことができる IronPDF があります。 簡単なドキュメントから高度なレポートまで生成が必要な場合、IronPDF はワークフロー内での PDF 自動生成のための貴重なツールとなります。

Jacob Mellor、Ironチームの最高技術責任者(CTO)
最高技術責任者(CTO)

ジェイコブ・メラーはIron Softwareの最高技術責任者(CTO)であり、C# PDFテクノロジーを開拓する先見的なエンジニアです。Iron Softwareのコアコードベースを支えるオリジナル開発者として、彼は創業以来、会社の製品アーキテクチャを形成し、CEOのCameron Rimingtonとともに、会社をNASA、Tesla、および世界的な政府機関にサービスを提供する50人以上の会社に変えました。1999年にロンドンで最初のソフトウェアビジネスを開業し、2005年に最初 for .NETコンポーネントを作成した後、Microsoftのエコシステム全体で複雑な問題を解決することを専門としました。

関連する記事

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

OR
bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。
PDF用C# NuGetライブラリ
NuGetでインストール

バージョン: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. ソリューションエクスプローラーで参照を右クリックし、NuGetパッケージを管理を選択
  2. ブラウズを選択し、"IronPDF"を検索
  3. パッケージを選択してインストール
C# PDF DLL
DLLをダウンロード

バージョン: 2026.9

またはここからWindowsインストーラーをダウンロードする。

  1. IronPDFを~/Libsなどの場所に解凍し、ソリューションディレクトリ内に配置する
  2. Visual Studioソリューションエクスプローラーで参照を右クリックし、"IronPDF.dll"をブラウズして選択

ライセンスは$999から