c# 数据库的 sql 参数封装类的编写
- 行业动态
- 2025-02-24
- 1
“
csharp,public class SqlParameterWrapper,{, public string ParameterName { get; set; }, public object Value { get; set; },},
“
在C#中,编写一个用于数据库SQL参数封装的类可以有效提高代码的可维护性和安全性,以下是一个示例,展示了如何创建一个通用的SQL参数封装类:
SQLParameterWrapper 类
using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; public class SQLParameterWrapper { private Dictionary<string, object> _parameters = new Dictionary<string, object>(); // 添加参数的方法 public void AddParameter(string parameterName, object value) { _parameters.Add(parameterName, value); } // 获取参数集合的方法 public IEnumerable<SqlParameter> GetParameters() { List<SqlParameter> parameters = new List<SqlParameter>(); foreach (var item in _parameters) { SqlParameter parameter = new SqlParameter(item.Key, item.Value); parameters.Add(parameter); } return parameters; } }
使用示例
以下是如何使用SQLParameterWrapper
类的示例:
class Program { static void Main(string[] args) { // 创建SQLParameterWrapper实例 SQLParameterWrapper parameterWrapper = new SQLParameterWrapper(); // 添加参数 parameterWrapper.AddParameter("@UserId", 1); parameterWrapper.AddParameter("@UserName", "JohnDoe"); // 获取参数集合并执行查询 using (SqlConnection connection = new SqlConnection("your_connection_string")) { connection.Open(); string query = "SELECT * FROM Users WHERE UserId = @UserId AND UserName = @UserName"; SqlCommand command = new SqlCommand(query, connection); command.Parameters.AddRange(parameterWrapper.GetParameters().ToArray()); using (SqlDataReader reader = command.ExecuteReader()) { while (reader.Read()) { Console.WriteLine($"UserId: {reader["UserId"]}, UserName: {reader["UserName"]}"); } } } } }
解释
1、SQLParameterWrapper 类:这个类包含一个私有的字典_parameters
,用于存储参数名和值的键值对,它提供了AddParameter
方法来添加参数,以及GetParameters
方法来获取SqlParameter
对象的集合。
2、使用示例:在示例中,首先创建了SQLParameterWrapper
的实例,并通过AddParameter
方法添加了两个参数,通过GetParameters
方法获取参数集合,并在执行SQL查询时将这些参数添加到SqlCommand
对象中,使用SqlDataReader
读取查询结果并输出。
优点
可维护性:将所有参数的添加和管理集中在一个地方,使代码更易于维护和修改。
安全性:通过使用参数化查询,防止了SQL注入攻击,提高了应用程序的安全性。
灵活性:该类可以很容易地扩展,以支持更多类型的参数或不同的数据库操作。
通过编写一个通用的SQL参数封装类,可以提高代码的可读性、可维护性和安全性,这种封装方式不仅适用于简单的查询操作,还可以扩展到更复杂的数据库操作中,如插入、更新和删除数据等。