ホームページ >データベース >mysql チュートリアル >C# を使用して MySQL でカスタム ストアド プロシージャと関数を作成する方法

C# を使用して MySQL でカスタム ストアド プロシージャと関数を作成する方法

WBOY
WBOYオリジナル
2023-09-22 09:42:30932ブラウズ

C# を使用して MySQL でカスタム ストアド プロシージャと関数を作成する方法

C を使用して MySQL でカスタム ストアド プロシージャと関数を作成する方法

#はじめに:
MySQL は広く使用されているオープン ソース データベース管理システムであり、C# は一般的に使用されるオブジェクト指向プログラミング言語。開発プロセスでは、コードの再利用性とパフォーマンスを向上させるために、データベースのストアド プロシージャや関数を使用する必要がよくあります。この記事では、C# を使用して MySQL データベースにカスタム ストアド プロシージャと関数を作成する方法を紹介し、具体的なコード例を示します。

1. ストアド プロシージャ
ストアド プロシージャは、特定のタスクを実行する一連の SQL ステートメントです。 C#を使用してMySQLにカスタムストアドプロシージャを記述する方法を詳しく紹介します。

1.1 ストアド プロシージャを作成する
まず、MySQL に新しいデータベースを作成し、「TestDB」という名前のデータ テーブルを作成します。テーブル構造は次のとおりです。

CREATE TABLE TestTable (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(100) DEFAULT NULL,
age int(11) DEFAULT NULL,
主キー (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;

次に、Visual Studio で新しい C# コンソール アプリケーションを作成します。 MySQL 接続文字列を介してデータベースに接続し、次のコードを実行して「GetAllData」という名前のストアド プロシージャを作成します。

using MySql.Data.MySqlClient;

namespace MySQLExample
{

class Program
{
    static void Main(string[] args)
    {
        string connectionString = "server=localhost;username=root;password=password;database=TestDB";
        MySqlConnection connection = new MySqlConnection(connectionString);
        MySqlCommand cmd = new MySqlCommand();
        cmd.Connection = connection;

        cmd.CommandText = "CREATE PROCEDURE GetAllData() " +
                           "BEGIN " +
                           "SELECT * FROM TestTable; " +
                           "END";

        try
        {
            connection.Open();
            cmd.ExecuteNonQuery();
            Console.WriteLine("存储过程创建成功!");
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        finally
        {
            connection.Close();
        }

        Console.ReadKey();
    }
}

}

上記のコードは、CREATE PROCEDURE ステートメントを実行して、「GetAllData」という名前のストアド プロシージャを作成します。このストアド プロシージャはデータベース内で直接呼び出すことができ、TestTable テーブル内のすべてのデータを返します。

1.2 ストアド プロシージャの呼び出し
次に、作成したばかりのストアド プロシージャを C# で呼び出す方法を示します。

前の手順に基づいて、ストアド プロシージャを呼び出して返されたデータを取得する次のコードを作成できます:

using MySql.Data.MySqlClient;

namespace MySQLExample
{

class Program
{
    static void Main(string[] args)
    {
        string connectionString = "server=localhost;username=root;password=password;database=TestDB";
        MySqlConnection connection = new MySqlConnection(connectionString);
        MySqlCommand cmd = new MySqlCommand();
        cmd.Connection = connection;

        cmd.CommandText = "GetAllData";
        cmd.CommandType = CommandType.StoredProcedure;

        try
        {
            connection.Open();
            MySqlDataReader reader = cmd.ExecuteReader();

            while (reader.Read())
            {
                Console.WriteLine(reader["id"].ToString() + " " + reader["name"].ToString() + " " + reader["age"].ToString());
            }

            reader.Close();
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        finally
        {
            connection.Close();
        }

        Console.ReadKey();
    }
}

}

上記のコードは、「GetAllData」ストアド プロシージャを実行して TestTable テーブル内のすべてのデータを取得し、結果をコンソールに出力します。

2. 関数
関数は、入力パラメーターの値を計算して値を返す再利用可能な SQL コード ブロックです。 C#を使用してMySQLにカスタム関数を記述する方法を詳しく紹介します。

2.1 関数の作成
MySQL で「GetAverageAge」という名前の関数を作成します。この関数は、TestTable テーブル内のすべての人の平均年齢を計算して返します。

関数を作成するコードは次のとおりです。

CREATE FUNCTION GetAverageAge() RETURNS INT(11)
BEGIN
DECLARE avg_age INT(11) );
SELECT AVG(age) INTO avg_age FROM TestTable;
RETURN avg_age;
END

2.2 関数の呼び出し
次のコードを使用して、作成した関数を呼び出して取得します。戻り値:

using MySql.Data.MySqlClient;

namespace MySQLExample
{

class Program
{
    static void Main(string[] args)
    {
        string connectionString = "server=localhost;username=root;password=password;database=TestDB";
        MySqlConnection connection = new MySqlConnection(connectionString);
        
        try
        {
            connection.Open();
            MySqlCommand cmd = new MySqlCommand("SELECT GetAverageAge()", connection);
            int averageAge = Convert.ToInt32(cmd.ExecuteScalar());

            Console.WriteLine("平均年龄:" + averageAge);
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        finally
        {
            connection.Close();
        }

        Console.ReadKey();
    }
}

}

上記のコードは、実行すると呼び出されます。 SELECT GetAverageAge() ステートメントの「GetAverageAge」関数を使用し、関数によって返される平均年齢を取得します。

結論:
この記事では、C# を使用して MySQL でカスタム ストアド プロシージャと関数を作成する方法を紹介し、具体的なコード例を示します。ストアド プロシージャとストアド関数は、コードの再利用性とパフォーマンスを向上させることができ、さまざまな複雑なデータ処理のニーズに適しています。 C# を使用して MySQL データベースに接続すると、ストアド プロシージャや関数を柔軟に作成および呼び出しできるため、MySQL データベースの利点を最大限に発揮できます。

以上がC# を使用して MySQL でカスタム ストアド プロシージャと関数を作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。