在插入操作之后检索sqldatasource中的自动编号

时间:2011-06-16 13:11:32

标签: asp.net oracle oledb detailsview

在我的asp.net应用程序中,我想使用detailsview在数据库中显示/插入/更新数据。

阅读文档后:

http://msdn.microsoft.com/en-us/library/fkzs2t3h%28v=VS.85%29

IT在sqlserver中运行良好,但是当我使用oracle使用“oledb”提供程序时,会发生错误(我已将命名参数替换为'@xxx'到'?')。

该错误似乎是由此命令引起的:

InsertCommand="INSERT INTO Employees(LastName, FirstName) VALUES (@LastName, @FirstName); 
                         SELECT @EmpID = SCOPE_IDENTITY()"

该命令首先将新数据插入db,然后检索'autonumber'。

在oracle中,它不起作用,所以我这样解决:

InsertCommand="INSERT INTO Employees(LastName, FirstName) VALUES (@LastName, @FirstName); 
                         SELECT @EmpID = seq_employees.currval() from dual"

但它仍然不起作用。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

看到这个问题:

Best practices: .NET: How to return PK against an oracle database?

基本上,您使用RETURNING键INTO参数,并为参数设置输出参数。