我正在尝试使用Dapper orm执行以下简单查询:
var sqlString = new StringBuilder();
sqlString.Append("select a.acct AccountNumber,");
sqlString.Append(" b.first_name FirstName,");
sqlString.Append(" b.last_name LastName,");
sqlString.Append(" a.rr RrNumber,");
sqlString.Append(" c.addr1 AddressLine1,");
sqlString.Append(" c.addr2 AddressLine2,");
sqlString.Append(" c.addr3 AddressLine3,");
sqlString.Append(" c.addr4 AddressLine4,");
sqlString.Append(" c.addr5 AddressLine5,");
sqlString.Append(" c.addr6 AddressLine6,");
sqlString.Append(" c.addr7 AddressLine7,");
sqlString.Append(" c.addr8 AddressLine8 ");
sqlString.Append("from (pub.mfclac as a left join pub.mfcl as b on a.client=b.client) ");
sqlString.Append("left join pub.mfclad as c on a.client=c.client ");
sqlString.Append("where a.acct = '@ZYX'");
var connection = new OdbcConnection(_connectionString);
var result = connection.Query(sqlString.ToString(),
new
{
ZYX = accountNumber
});
然而,当我使用已知存在的账号号码执行此操作时,dapper没有返回任何内容。因此,我尝试删除引号以验证参数实际上是否被账号号码替换,但是从服务器返回的错误表明"@ZYX"周围存在语法错误。这意味着dapper没有用给定值替换参数。你有什么想法,为什么会发生这种情况?根据有限的文档,这应该是“可以工作”的。
编辑1
无法使其工作。使用string.format作为解决方法插入参数。