C# 使用DbExtensions SqlBuilder获取原始sql语句

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构建一个动态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%" });
从名称类似于{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。