鉴于这个看似简单的查询:
var sql = Sql.Builder
.Append("SELECT * FROM Log")
.Append("WHERE ApplicationId=@0", 1)
.Append("ORDER BY @0 @1", "Timestamp", "ASC");
return _db.Page<Log>(1, 25, sql);
&#39; @ 2&#39;附近的语法不正确。 (@ 2最后评估到最后一个附加的@ 1)
我做错了什么?
答案 0 :(得分:3)
问题出在.Append("ORDER BY @0 @1", "Timestamp", "ASC");
,因为Timestamp
和ASC
被解释为params。
您需要在那里连接字符串:
.Append(String.Format("ORDER BY {0} {1}", "Timestamp", "ASC"));
请注意这是一个可能的SQL注入攻击向量。 清理您的输入。