带有 MS Access 更新和插入问题的 Dapper
Posted
技术标签:
【中文标题】带有 MS Access 更新和插入问题的 Dapper【英文标题】:Dapper with MS Access Update and Insert issue 【发布时间】:2013-10-20 15:37:19 【问题描述】:我正在使用 Dapper 更新和插入 Access DB。代码工作不抛出异常,但不更新数据库中的值。下面是我的代码
sql.Append("UPDATE drugs_repository SET drug_name = @DrugName ");
sql.Append(" WHERE id = @DrugId");
var parameters = new
DrugName = objDrug.DrugName,
DrugId = objDrug.DrugId
;
var t = connection.Query<string>(sql.ToString(), parameters);
有人可以让我知道我在上面的代码中到底缺少什么吗? 当我对值进行硬编码而不是在数据库中更新时。所以可能与参数有关。
【问题讨论】:
得到了问题。在 Dapper 的 SqlMapper.cs 文件中,我从 "//IEnumerable'@DrugName' > '@DrugId'
.OrderBy
正在交换参数的顺序,而 Access.OLEDB 要求按照它们在 SQL CommandText 中出现的顺序创建参数。
【参考方案1】:
如果您担心删除 Dapper 代码中的 .OrderBy()
可能产生的副作用,那么一种解决方法是命名您的参数,使它们按照它们在 SQL 命令中出现的顺序进行排序.例如,我怀疑如果参数命名为@1DrugName
和@2DrugId
,未经修改的Dapper 代码可能会正常工作。
【讨论】:
感谢您的想法。我实际上使用的是旧版本的 Dapper。在最新版本中,它已修复。无论如何感谢您的回复。 techknackblogs.com 我认为这个问题仍然存在,除非订单被保留***.com/questions/39339478/…以上是关于带有 MS Access 更新和插入问题的 Dapper的主要内容,如果未能解决你的问题,请参考以下文章
MS-ACCESS - 在插入之前/之后插入/更新触发器需要
用 Python 在 MS Access 数据库中插入或更新行