【发布时间】:2017-05-23 06:00:49
【问题描述】:
我正在使用 Dapper 来处理数据。
这是一个代码示例:
using(var connection = new SqlConnection(ConfigurationManager.AppSettings["MyConnectString"])
{
var sql = string.Format(
@"SELECT [Column1]
FROM [MyTable]
WHERE [Column3] > {0}
AND [Column4] < {1}"
, myValue1
, myValue2
);
var result = connection.Query<long>(sql).ToList();
}
我的项目写了很多类似上面的sql脚本。
我想将脚本写入文件(可能是 QueryAccount.config、QueryOrder.config、(xml 格式)或其他文件)
然后我可以从文件中加载脚本。
我想要的是在文件中编写我的脚本,然后我编写相同的类 在文件中。 (例如,我在 Product.config 中编写所有查询产品脚本,在 Order.config 中编写所有查询订单脚本) 然后我像这样使用:
var cmd = MyCommandManager.GetScript("QueryProduct");
cmd.SetParam("@ProductId", 123);
cmd.SetParam("@InvoicingDate", DateTime.Now(-7))
...
文件中的脚本如:
SELECT [ProductName]
FROM [Product]
WHERE [ProductId] = @ProductId
AND [InvoicingDate] = @InvoicingDate
【问题讨论】:
-
不要这样做 - 你在要求 sql 注入攻击!
-
你为什么想要那个?
-
@DanielA.White 你能给我一些建议吗?但我必须使用 dapper...非常感谢。
-
您应该为每个脚本创建存储过程,然后使用参数调用这些存储过程。它将避免sql注入。
标签: c# asp.net-mvc config dapper sql-scripts