【发布时间】:2015-09-13 08:55:05
【问题描述】:
我有一个 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
【问题讨论】:
-
如果我没记错的话,dataadapter 填充不会填充主键信息并且没有匹配的主键,Load 只会追加记录。尝试在
sda.Fill(workMembers)之前添加sda.FillSchema(workMembers, SchemaType.Source)。