标识列在ADO.NET中引起的问题

王朝c#·作者佚名  2006-01-09
宽屏版  字体: |||超大  

假设只有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的行。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有