C# 使用DbExtensions SqlBuilder获取原始sql语句
我正在使用SqlBuilder构建一个动态sql语句,其中SELECT和where子句各不相同。查询的构建方式如下:C# 使用DbExtensions SqlBuilder获取原始sql语句,c#,sql,sqlbuilder,dbextensions,C#,Sql,Sqlbuilder,Dbextensions,我正在使用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()方法返回的字符串可能如下所示
SqlBuilder sb = new SqlBuilder();
sb.SELECT("id, name");
sb.FROM("products");
sb.WHERE("name LIKE {0}", new object[] { "a%" });
在准备好SqlBuilder之后,我希望获得原始sql语句。但是,ToString()方法返回的字符串可能如下所示:
SqlBuilder sb = new SqlBuilder();
sb.SELECT("id, name");
sb.FROM("products");
sb.WHERE("name LIKE {0}", new object[] { "a%" });
从名称类似于{0}的产品中选择id、名称
我需要设置参数的原始sql,即:
从产品中选择id、名称,如“a%”
是否可以使用DbExtensions SqlBuilder?DbExtensions帮助页面包含以下代码:
var query = new SqlBuilder()
.SELECT("*")
.FROM("Products")
.WHERE("Name LIKE {0}", "A%")
这和你的不同。(我知道该方法有
params object[]
作为签名,但params不一定像您认为的那样工作。)更改您的位置以匹配它们。您需要调用命令传递提供程序工厂或连接实例,例如:
DbCommand command = query.ToCommand(SqlClientFactory.Instance);
在v6中,您必须使用数据库:
var db = new Database();
IDbCommand command = db.CreateCommand(query);
您能展示到目前为止的代码吗?这个SqlBuilder来自哪里?没关系-DbExtensions。