Comment écrire des procédures stockées, des déclencheurs et des fonctions personnalisés dans MySQL en utilisant C#
MySQL est un système de gestion de bases de données relationnelles open source largement utilisé, et C# est un langage de programmation puissant pour ceux qui ont besoin de travailler avec des bases de données pour un développement interactif. tâches, MySQL et C# sont de bons choix. Dans MySQL, nous pouvons utiliser C# pour écrire des procédures stockées, des déclencheurs et des fonctions personnalisés afin d'obtenir des opérations de base de données plus flexibles et plus puissantes.
Cet article vous guidera à travers des exemples d'écriture et d'exécution de procédures stockées, de déclencheurs et de fonctions personnalisés à l'aide de C#. Nous présenterons comment les procédures stockées, les déclencheurs et les fonctions sont définis ainsi que des exemples de code respectivement. Notez que cet article suppose que MySQL et un environnement de développement C# sont installés.
Une procédure stockée est un bloc de code SQL précompilé et stocké dans la base de données et peut être appelé par son nom et ses paramètres. Vous trouverez ci-dessous un exemple qui montre comment créer et exécuter une procédure stockée simple.
Tout d'abord, créez une procédure stockée nommée GetEmployeeByID
dans 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
dans MySQL : 🎜rrreee🎜Ensuite, vous pouvez effectuer une opération d'insertion en C# pour déclencher ce déclencheur : 🎜rrreeeCalculateDiscount
dans MySQL : 🎜rrreee🎜 Ensuite, vous pouvez appeler cette fonction en C# : 🎜rrreee🎜Ce qui précède explique comment écrire un stockage personnalisé en utilisant C# dans MySQL. Exemples de procédures , déclencheurs et fonctions. Ces exemples fournissent une utilisation de base que vous pouvez modifier et étendre de manière appropriée en fonction de vos besoins. J'espère que cela vous aidera à mieux comprendre et utiliser MySQL et C#. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!