Cara menulis prosedur tersimpan tersuai, pencetus dan fungsi dalam MySQL menggunakan C#
MySQL ialah sistem pengurusan pangkalan data hubungan sumber terbuka yang digunakan secara meluas, dan C# ialah bahasa pengaturcaraan yang berkuasa untuk mereka yang perlu bekerja dengan pangkalan data Untuk pembangunan interaktif tugasan, MySQL dan C# adalah pilihan yang baik. Dalam MySQL, kita boleh menggunakan C# untuk menulis prosedur tersimpan tersuai, pencetus dan fungsi untuk mencapai operasi pangkalan data yang lebih fleksibel dan berkuasa.
Artikel ini akan membimbing anda melalui contoh penulisan dan pelaksanaan prosedur tersimpan tersuai, pencetus dan fungsi menggunakan C#. Kami akan memperkenalkan cara prosedur tersimpan, pencetus dan fungsi ditakrifkan dan kod sampel masing-masing. Ambil perhatian bahawa artikel ini menganggap anda telah memasang MySQL dan persekitaran pembangunan C#.
Prosedur tersimpan ialah blok kod SQL yang telah disusun dan disimpan dalam pangkalan data dan boleh dipanggil mengikut nama dan parameter. Di bawah ialah contoh yang menunjukkan cara membuat dan melaksanakan prosedur tersimpan yang mudah.
Mula-mula, buat prosedur tersimpan bernama GetEmployeeByID
dalam MySQL: GetEmployeeByID
的存储过程:
DELIMITER // CREATE PROCEDURE GetEmployeeByID(IN empID INT) BEGIN SELECT * FROM Employees WHERE EmployeeID = empID; END // DELIMITER ;
然后,可以使用 C# 来调用这个存储过程:
using MySql.Data.MySqlClient; MySqlConnection connection = new MySqlConnection("connectionString"); MySqlCommand command = new MySqlCommand("GetEmployeeByID", connection); command.CommandType = CommandType.StoredProcedure; command.Parameters.AddWithValue("@empID", 1); connection.Open(); MySqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { Console.WriteLine(reader["EmployeeName"]); } reader.Close(); connection.Close();
触发器是一种特殊类型的存储过程,它会在数据库中的指定操作发生时自动执行。下面是一个示例,演示如何创建和使用触发器。
首先,在 MySQL 中创建一个名为 UpdateInventory
的触发器:
CREATE TRIGGER UpdateInventory AFTER INSERT ON Orders FOR EACH ROW BEGIN UPDATE Products SET Inventory = Inventory - NEW.Quantity WHERE ProductID = NEW.ProductID; END
然后,可以在 C# 中执行插入操作,来触发这个触发器:
using MySql.Data.MySqlClient; MySqlConnection connection = new MySqlConnection("connectionString"); MySqlCommand command = new MySqlCommand("INSERT INTO Orders (ProductID, Quantity) VALUES (1, 10)", connection); connection.Open(); command.ExecuteNonQuery(); connection.Close();
函数是一段可重用的代码,在 MySQL 中可以像内置函数一样使用。下面是一个示例,演示如何创建和使用自定义函数。
首先,在 MySQL 中创建一个名为 CalculateDiscount
CREATE FUNCTION CalculateDiscount(price DECIMAL(10,2), discount DECIMAL(10,2)) RETURNS DECIMAL(10,2) RETURN price - (price * (discount / 100));
using MySql.Data.MySqlClient; MySqlConnection connection = new MySqlConnection("connectionString"); MySqlCommand command = new MySqlCommand("SELECT CalculateDiscount(100, 10)", connection); connection.Open(); object result = command.ExecuteScalar(); connection.Close(); Console.WriteLine(result);
UpdateInventory
dalam MySQL: 🎜rrreee🎜Kemudian, anda boleh melakukan operasi sisipan dalam C# untuk mencetuskan pencetus ini: 🎜rrreeeCalculateDiscount
dalam MySQL: 🎜rrreee🎜 Kemudian, anda boleh memanggil fungsi ini dalam C#: 🎜rrreee🎜Di atas ialah cara menulis storan tersuai menggunakan C# dalam MySQL Contoh prosedur , pencetus dan fungsi. Contoh-contoh ini menyediakan penggunaan asas yang boleh anda ubah suai dan lanjutkan dengan sewajarnya untuk memenuhi keperluan anda. Semoga ia membantu anda lebih memahami dan menggunakan MySQL dan C#. 🎜Atas ialah kandungan terperinci Bagaimana untuk menulis prosedur tersimpan tersuai, pencetus dan fungsi dalam MySQL menggunakan C#. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!