我有一个 SQL 表需要用另一个表中的数据更新。
如果有新记录,它会工作并插入新记录,但如果有对现有记录的更新,它不会更新记录中的名称。
例子是VB.Net的,欢迎大家用C#代码回复。
Dim workMembers As DataTable = New DataTable()
Dim extMembers As New DataTableReader(GetExternalMembers())
Using con As New SqlConnection(c.ConnectionString)
Using sda As New SqlDataAdapter("Select id, name from members", con)
sda.Fill(workMembers)
workMembers.Load(extMembers, LoadOption.PreserveChanges)
sda.Update(workMembers)
End Using
End Using
最佳答案
workMembers.Load 从外部表加载记录并将它们标记为未更改,因为表中已经存在一条记录。参见 DataTable.Load Method , 备注下的第二段。您要么需要遍历记录并使用 SetModified 方法将每个修改的记录设置为 Modified。 TnTinMn 是正确的,您的表定义需要将主键附加到定义以支持合并。参见 DataTable.PrimaryKey Property
关于c# - 仅使用新记录进行更新时,DataTable.Load 方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31072568/