我使用SqlBuilder构建了一个动态sql语句,其中SELECT和where子句都不同。查询的构建方式如下:
SqlBuilder sb = new SqlBuilder();
sb.SELECT("id, name");
sb.FROM("products");
sb.WHERE("name LIKE {0}", new object[] { "a%" });一旦我准备好了SqlBuilder,我想要获得原始的sql语句。但是,ToString()方法返回的字符串可能如下所示:
从名为{0}的产品中选择id,name
我需要设置参数的原始sql,即:
选择id,从产品中选择名称,如'a%‘
是否可以使用DbExtensions SqlBuilder?
发布于 2014-12-13 16:36:11
您需要调用传递提供者工厂或连接实例的ToCommand,例如:
DbCommand command = query.ToCommand(SqlClientFactory.Instance);在v6中,您必须使用数据库:
var db = new Database();
IDbCommand command = db.CreateCommand(query);发布于 2014-11-28 14:18:00
DbExtensions帮助页面有以下代码:
var query = new SqlBuilder()
.SELECT("*")
.FROM("Products")
.WHERE("Name LIKE {0}", "A%")这和你的不一样。(我知道该方法以params object[]作为签名,但params不一定如您所想的那样工作。)改变你的位置来匹配他们的。
https://stackoverflow.com/questions/27187755
复制相似问题