>  기사  >  데이터 베이스  >  C#을 사용하여 MySQL에서 사용자 정의 저장 프로시저 및 함수를 작성하는 방법

C#을 사용하여 MySQL에서 사용자 정의 저장 프로시저 및 함수를 작성하는 방법

WBOY
WBOY원래의
2023-09-22 09:42:30884검색

C#을 사용하여 MySQL에서 사용자 정의 저장 프로시저 및 함수를 작성하는 방법

C#을 사용하여 MySQL에서 사용자 정의 저장 프로시저 및 함수를 작성하는 방법

소개:
MySQL은 널리 사용되는 오픈 소스 데이터베이스 관리 시스템인 반면 C#은 일반적으로 사용되는 객체 지향 프로그래밍 언어입니다. 개발 과정에서 코드 재사용성과 성능을 향상시키기 위해 데이터베이스 저장 프로시저와 함수를 사용해야 하는 경우가 많습니다. 이 문서에서는 C#을 사용하여 MySQL 데이터베이스에 사용자 지정 저장 프로시저 및 함수를 작성하는 방법을 소개하고 구체적인 코드 예제를 제공합니다.

1. 저장 프로시저
저장 프로시저는 특정 작업을 수행하는 SQL 문 집합입니다. 다음에서는 C#을 사용하여 MySQL에서 사용자 정의 저장 프로시저를 작성하는 방법을 자세히 소개합니다.

1.1 저장 프로시저 만들기
먼저 MySQL에 새 데이터베이스를 만들고 "TestDB"라는 데이터 테이블을 만듭니다. 테이블 구조는 다음과 같습니다:

CREATE TABLE TestTable (TestTable (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(100) DEFAULT NULL,
age int(11) DEFAULT NULL,
PRIMARY KEY (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表中的所有数据,并将结果输出到控制台。

二、函数
函数是一个可重用的SQL代码块,它将输入参数的值计算后返回一个值。下面将详细介绍如何在MySQL中使用C#编写自定义函数。

2.1 创建函数
在MySQL中创建一个名为"GetAverageAge"的函数,它将计算TestTable表中所有人的平均年龄并返回。

创建函数的代码如下所示:

CREATE FUNCTION GetAverageAge id int(11) NOT NULL AUTO_INCREMENT,
name varchar(100) DEFAULT NULL,
age int(11) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Next, Visual Studio Create 새로운 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);
        
        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();
    }
}

}

위 코드 CREATE PROCEDURE 문에 의해 실행되어 "GetAllData"라는 저장 프로시저를 생성합니다. 이 저장 프로시저는 데이터베이스에서 직접 호출할 수 있으며 TestTable 테이블의 모든 데이터를 반환합니다.

1.2 저장 프로시저 호출

다음으로 방금 생성한 저장 프로시저를 C#에서 호출하는 방법을 살펴보겠습니다.


이전 단계를 기반으로 다음 코드를 작성하여 저장 프로시저를 호출하고 반환된 데이터를 얻을 수 있습니다.

🎜using MySql.Data.MySqlClient; 🎜🎜namespace MySQLExample🎜{🎜rrreee🎜}🎜🎜위 코드는 다음과 같습니다. "GetAllData" 저장 프로시저가 TestTable 테이블의 모든 데이터를 가져오고 결과를 콘솔에 출력합니다. 🎜🎜 2. 함수 🎜 함수는 입력 매개변수의 값을 계산하여 값을 반환하는 재사용 가능한 SQL 코드 블록입니다. 다음에서는 C#을 사용하여 MySQL에서 사용자 정의 함수를 작성하는 방법을 자세히 소개합니다. 🎜🎜2.1 함수 만들기🎜TestTable 테이블에 있는 모든 사람의 평균 연령을 계산하고 반환하는 "GetAverageAge"라는 함수를 MySQL에 만듭니다. 🎜🎜함수를 생성하는 코드는 다음과 같습니다: 🎜🎜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🎜{🎜rrreee🎜} 🎜🎜위 코드 SELECT GetAverageAge() 문을 실행하여 "GetAverageAge" 함수를 호출하고 함수가 반환하는 평균 연령을 구합니다. 🎜🎜결론: 🎜이 문서에서는 C#을 사용하여 MySQL에서 사용자 지정 저장 프로시저 및 함수를 작성하는 방법을 설명하고 구체적인 코드 예제를 제공합니다. 저장 프로시저와 함수는 코드 재사용성과 성능을 향상시킬 수 있으며 다양하고 복잡한 데이터 처리 요구 사항에 적합합니다. C#을 사용하여 MySQL 데이터베이스에 연결하면 저장 프로시저와 함수를 유연하게 작성하고 호출할 수 있으므로 MySQL 데이터베이스의 장점을 최대한 활용할 수 있습니다. 🎜

위 내용은 C#을 사용하여 MySQL에서 사용자 정의 저장 프로시저 및 함수를 작성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.