【发布时间】:2011-04-05 07:08:15
【问题描述】:
向我的 DataSet 添加新项目并确保如果它是重复项目,我更新它而不是创建新条目的最有效方法是什么?
如果我在 mySQL 中编写此代码,我将使用“On Duplicate”语法。
【问题讨论】:
-
您如何确定新项目是否与现有项目重复?通过仅查看具有主键的列,或您决定的某些列?
-
我正在使用带有主键的列来确定它是否是重复项。我通过捕获生成的任何错误以及使用 LINQ 查询更新现有项目是否重复来临时解决了这个问题。我很确定这是不好的做法,或者至少效率不高。 :)
-
我不认为这是一个不好的做法 :) 如果您尝试使用现有主键添加新项目,DataTable 会抛出 System.Data.ConstraintException,您可以使用 catch 块处理它通过更新表的项目。这就是我认为的方式:)