Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk menulis prosedur dan fungsi tersimpan tersuai dalam MySQL menggunakan C#

Bagaimana untuk menulis prosedur dan fungsi tersimpan tersuai dalam MySQL menggunakan C#

WBOY
WBOYasal
2023-09-22 09:42:30882semak imbas

Bagaimana untuk menulis prosedur dan fungsi tersimpan tersuai dalam MySQL menggunakan C#

Cara menulis prosedur dan fungsi tersimpan tersuai dalam MySQL menggunakan C#

Pengenalan:
MySQL ialah pangkalan data sumber terbuka yang digunakan secara meluas sistem pengurusan, dan C# ialah bahasa pengaturcaraan berorientasikan objek yang biasa digunakan. Semasa proses pembangunan, kita sering perlu menggunakan prosedur dan fungsi yang disimpan pangkalan data untuk meningkatkan kebolehgunaan dan prestasi kod semula. Artikel ini akan memperkenalkan cara menggunakan C# untuk menulis prosedur dan fungsi tersimpan tersuai dalam pangkalan data MySQL, dan menyediakan contoh kod khusus.

1. Prosedur tersimpan
Prosedur tersimpan ialah satu set pernyataan SQL yang melaksanakan tugas tertentu. Berikut akan memperkenalkan secara terperinci cara menulis prosedur tersimpan tersuai dalam MySQL menggunakan C#.

1.1 Cipta prosedur tersimpan
Pertama, cipta pangkalan data baharu dalam MySQL dan buat jadual data bernama "TestDB". Struktur jadual adalah seperti berikut:

BUAT JADUAL 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,
nama varchar(100) NULL LALAI,
umur int(11) NULL LALAI,
KUNCI UTAMA (id) # 🎜🎜#) ENGINE=CHARSET LALAI InnoDB=utf8;

Seterusnya, cipta aplikasi konsol C# baharu dalam Visual Studio. Sambung ke pangkalan data melalui rentetan sambungan MySQL dan kemudian laksanakan kod berikut untuk mencipta prosedur tersimpan bernama "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();
    }
}

}

Kod di atas mencipta prosedur tersimpan bernama "GetAllData" dengan melaksanakan pernyataan CREATE PROCEDURE. Prosedur tersimpan ini boleh dipanggil terus dalam pangkalan data dan akan mengembalikan semua data dalam jadual TestTable.

1.2 Memanggil prosedur tersimpan

Seterusnya, mari kita tunjukkan cara memanggil prosedur tersimpan yang baru dibuat dalam C#.

Berdasarkan langkah sebelumnya, kita boleh menulis kod berikut untuk memanggil prosedur yang disimpan dan mendapatkan data yang dikembalikan:

menggunakan MySql.Data.MySqlClient;#🎜🎜# #🎜🎜#namespace MySQLExample#🎜🎜#{#🎜🎜#rrreee#🎜🎜#}#🎜🎜##🎜🎜#Kod di atas memperoleh semua data dalam jadual TestTable dengan melaksanakan "GetAllData saves" keputusan Output ke konsol. #🎜🎜##🎜🎜# 2. Fungsi #🎜🎜#Fungsi ialah blok kod SQL boleh guna semula yang mengira nilai parameter input dan mengembalikan nilai. Berikut akan memperkenalkan secara terperinci cara menulis fungsi tersuai dalam MySQL menggunakan C#. #🎜🎜##🎜🎜#2.1 Cipta fungsi #🎜🎜#Buat fungsi bernama "GetAverageAge" dalam MySQL, yang akan mengira purata umur semua orang dalam jadual TestTable dan mengembalikannya. #🎜🎜##🎜🎜#Kod untuk mencipta fungsi adalah seperti berikut: #🎜🎜##🎜🎜#CIPTA FUNGSI GetAverageAge() RETURNS INT(11)#🎜🎜#BEGIN#🎜 🎜# ISYTIHKAN avg_age INT(11);#🎜🎜#SELECT AVG(age) IN TO avg_age from TestTable;#🎜🎜#RETURN avg_age;#🎜🎜#END#🎜🎜###🎜🎜🎜###🎜🎜🎜🎜###🎜🎜🎜 melalui Kod berikut untuk memanggil fungsi yang baru dibuat dan mendapatkan nilai yang dikembalikan: #🎜🎜##🎜🎜#using MySql.Data.MySqlClient;#🎜🎜##🎜🎜#namespace MySQLExample#🎜🎜#{#🎜🎜 rrreee#🎜 🎜#}#🎜🎜##🎜🎜#Kod di atas memanggil fungsi "GetAverageAge" dengan melaksanakan pernyataan SELECT GetAverageAge() dan memperoleh purata umur yang dikembalikan oleh fungsi tersebut. #🎜🎜##🎜🎜#Kesimpulan: #🎜🎜#Artikel ini memperkenalkan cara menggunakan C# untuk menulis prosedur dan fungsi tersimpan tersuai dalam MySQL, dan menyediakan contoh kod khusus. Prosedur dan fungsi yang disimpan boleh meningkatkan kebolehgunaan dan prestasi semula kod dan sesuai untuk pelbagai keperluan pemprosesan data yang kompleks. Dengan menggunakan C# untuk menyambung ke pangkalan data MySQL, kami boleh menulis dan memanggil prosedur dan fungsi tersimpan secara fleksibel, dengan itu memberikan permainan penuh kepada kelebihan pangkalan data MySQL. #🎜🎜#

Atas ialah kandungan terperinci Bagaimana untuk menulis prosedur dan fungsi tersimpan tersuai dalam MySQL menggunakan C#. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn