我无法检索最新插入id从我SQL Server2000db使用类型的数据集asp.NET

我已经创建了一个库中,删除和我打勾"刷新的数据表"和"产生插入、更新和删除性声明"。这自动产生的填充和GetData方法,并插入、更新选择,删除发言。

我已经尝试了每一个可能的解决方案在这个线程

http://forums.asp.net/t/990365.aspx

但我仍然unsuccesfull,它始终返回1(=数受影响的行)。我不想创建一个独立的插入的方法自动生成的insertCommand完全适合我的需要。

建议在该线以上,我已试图更新InsertCommand SQL语法添加选择SCOPY_IDENTITY()或类似的东西,我已经试过添加类型的参数ReturnValue,但是我所得到的是数量的影响行。

任何人都不会有不同的看这个?在此先感谢!Stijn

有帮助吗?

解决方案

我成功地找到了一种方法使用我的表适配器得到插入后增量ID。

我的做法有点不同,我使用一个存储过程,可以使插入,所以我的INSERT命令有所有的值,但该ID,我所做的SP只返回调用ID:  SET @ ID = SCOPE_IDENTITY() 接着  COMMIT TRAN 和最后一个行会  RETURN @ID

然后我搜索的InsertCommand我表适配器参数和@RETURNVALUE设置表中的增量ID的列,所以当它的自动执行把返回值的id字段。

希望这有助于

其他提示

我决定放弃,我不能浪费这个时间了。 我使用插入语句之后我做一个选择MAX(ID)查询来hget插入ID

如果任何人都应该有一个解决方案,我会很高兴在这儿读

由于 斯泰恩

你需要告诉你表的表器刷新 数据表之后新插入运作。这是你怎么可以这样做。

  1. 开放性 库中,删除->默认选择的查询>Advnaced的选择.和检查的选择 刷新的数据表.保存适配器。现在当你打电话的最新表器, 数据表将更新[刷新]之后新插入操作 并将反映最新数值,从数据库表。 如果主键或任何coloumn设置自动增加,该数据表将有那些最新的价值的后最近的更新。

  2. 现在你可以打电话的更新作为TableAdapterObj.更新(ds。数据表);

  3. 阅读最新数值,从数据表(ds。数据表)里奥字符匹和分配各自的价值观纳入儿童表之前update/insert.这将的工作正是你想要的方式。

alt文本http://ruchitsurati.net/files/tds1.png

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top