当前位置:首页 > 行业动态 > 正文

c# 数据库的 sql 参数封装类的编写

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参数封装类,可以提高代码的可读性、可维护性和安全性,这种封装方式不仅适用于简单的查询操作,还可以扩展到更复杂的数据库操作中,如插入、更新和删除数据等。

0