我有一个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
答案 0 :(得分:0)
workMembers.Load从外部表加载记录并将它们标记为未更改,因为表中已存在记录。请参阅备注下的DataTable.Load Method,第二段。您需要循环记录并使用SetModified方法将每个修改的记录设置为Modified。 TnTinMn是正确的,您的表定义需要在定义后附加主键才能支持合并。见DataTable.PrimaryKey Property