我需要一些帮助。问题在于:我有两个类型化的数据集:一个与Access DB相关,空表(localDB),另一个与Access数据库DB2相关,表包含1925条记录(localDB2)。我想将数据从DB2表复制到DB空表,但它不起作用。 DB和DB2在运行时复制到Debug文件夹中。以下是代码:
let rows = IndexSet(integersIn: 0..<outlineView.numberOfRows)
let rowViews = rows.flatMap { outlineView.rowView(atRow: $0, makeIfNecessary: false) as? RowView }
for rowView in rowViews
//iterate over rows
}
合并后,localDB中的CompanyAccount表获得1925条记录。在同一个表上调用adapter.Update方法后,变量rec = 0,数据库不会收到任何记录。
有人可以告诉我为什么这不起作用或我做错了什么?非常感谢
答案 0 :(得分:0)
在CompanyAccount表中查看Rows的RowState属性... RowState应该是&#34;添加&#34;在Merge之后......但AcceptChanges将RowStates重置为&#34; Unchanged&#34;。这就是更新没有做任何事情的原因......如果您没有调用AcceptChanges,则更新应该触发插入语句。
如果您希望localDB.CompanyAccount的所有行都具有RowState ==已添加,您还可以使用Load()函数而不是Merge:
localDB.CompanyAccount.Load(new DataTableReader(localDB2.CompanyAccount), LoadOption.Upsert);