Rumah > Artikel > pangkalan data > 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
(
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,
KUNCI UTAMA (
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;
{
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(); } }
}
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:
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!