假设只有2列的一个简单表UserTable:
UserID: int, IDENTITY (1, 1), NOT NULL
UserName: varchar(10)
请大家想象下列情景:
1.当填充DataSet时该表的@@IDENTITY=50
2.其它程序操作UsetTable而使UserTable的@@IDENTITY=53
3.向DataSet中插入一条新的记录,此时ADO.net会默认UserID=51.
4.按照MSDN上推荐的方法刷新数据集:
DataSet changed=dataset.GetChanges();
m_Adpter.update(changed);
dataset.merge(changed);
这时,数据集中就莫名其妙的出现两条记录,一条UserID=51,一条UserID=54.其它字段均相同。
其原因是:
数据集changed中所包含的UserID=51的记录在执行完m_Adpter的InsertCommand后,UserID变成54,将其合并到dataset时,该行作为行添加,而不是去更改UserID=51的行。
本文地址:http://com.8s8s.com/it/it42386.htm