【发布时间】:2014-11-02 03:48:59
【问题描述】:
这个查询有效;也就是说,它返回了预期的结果:
var r = sql.Query<T>("select * from TableName where Name = '" + name + "'");
但是,如果 'names' 值之一包含撇号(这是真的),则会引发异常 '{"Incorrect syntax near 'Resources'。\r\n字符串 '' 后面的引号不正确。 "}' - 为了尝试fix that problem,我的查询不再返回任何结果;但它应该。
我已尝试以几种方式更改代码,但以下任一更改均未返回任何结果:
var r = sql.Query<T>("select * from TableName where Name = '@name'", new { name });
或
var args = new DynamicParameters(name);
var r = sql.Query<T>("select * from TableName where Name = '@name'", args);
或
var args = new DynamicParameters(); args.AddDynamicParams(new { name });
var r = sql.Query<T>("select * from TableName where Name = '@name'", args);
或
var args = new DynamicParameters(); args.Add("@name", name);
var r = sql.Query<T>("select * from TableName where Name = '@name'", args);
这可能是一些微不足道的事情,我只是还没有掌握这个概念......但我已经花了太多时间试图弄清楚 - 因此问题。
【问题讨论】: