C# 查询SQL server并将结果按行以键值对形式返回


C#查询MS SQL server,并防止SQL 注入。
将SQL Server 查询结果按行返回,各字段以列名为key。
【已改正】文中 results.Add(new Dictionary<string, Object>(row)); 表示要深拷贝,否则仅拷贝了引用。

查询数据库

定义

这里定义一个类:

using Dss = Dictionary<string, string>;		// 预定义
class DBOperator
{
   
   
    private const string DBServer = "[服务器名]", DBName = "Test", User = "sa", Pwd = "20230918";
    string dbConnStr = string.Format("data source={0};initial catalog={1};user id={2};password={3}", DBServer, DBName, User, Pwd);

    /// <summary>
    /// 数据库查询操作的辅助函数
    /// </summary>
    /// <param name="conn">sql连接</param>
    /// <param name="sql">查询语句,其中where后可能有占位符</param>
    /// <param name="elements">占位符和值组成的键值对</param>
    /// <returns>返回组装好的字符串</returns>
    public SqlCommand CmdHelper(in SqlConnection conn, in string sql, in Dss elements)
    {
   
   
        SqlCommand cmd = new SqlCommand(sql, conn);