我正在尝试基于查询字符串参数动态创建MS SQL查询。在ASP.NET中使用查询字符串参数形成动态SQL语句
我目前使用的变量请求任何有效的查询字符串参数的值:如果参数不是空的,那么该变量形成SQL语句的一部分。如果它是空的,变量保持空白。
例如:
var search = Request["search"].IsEmpty() ? "" : Request["search"];
var price = Request["price"].IsEmpty() ? "" : Request["price"];
string searchSQL = "WHERE item_name LIKE '%" + search + "%'";
string priceSQL = " AND item_price < " + price;
string sql = "SELECT * from Items " + searchSQL + priceSQL;
如果两个查询参数是有效的,那么这个SQL查询运行正常。但是,如果搜索参数为空,且价格不,SQL查询就变成无效:
SELECT * from Items AND item_price < 100
我的计划是最多6个不同的查询字符串参数使用,所以这个代码片段真的不能用过的。这种方法的最佳做法是什么?是否有可能通过这种方式创建有效的动态sql语句?
最佳做法至少从使用参数开始。 –