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);