给出这个看似简单的查询:
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);
'@2'附近语法错误。(@2在最后一个append中最终求值为@1)
我做错了什么?
问题是在.Append("ORDER BY @0 @1", "Timestamp", "ASC");
,因为Timestamp
和ASC
被解释为参数。
你需要在那里连接字符串:
.Append(String.Format("ORDER BY {0} {1}", "Timestamp", "ASC"));
小心这是一个可能的sql注入攻击向量。清理输入