日期:2014-05-17  浏览次数:20403 次

三层架构中objectdatasource如何获取BLL层返回的值?
我正在做一个文章管理系统的后台,程序结构大致是这样的:

页面上一个FormView绑定ObjectDataSource控件,ODS控件的SelectMethod,InsertMethod,UpdateMethod绑定BLL层的Article类的方法,BLL层的方法再调用DAL层的方法,执行具体的SQL语句以及返回值。

现在想在FormView插入一条记录之后,获得刚刚插入记录的ID值,在以前不分层的时候,直接用ADO.NET,构造一个output参数就能获得SELECT @ID==@@Identity的值,现在分三层了,DAL和BLL之间倒是很好传递参数,但是BLL想返回参数到页面该怎么做?

我看到ObjectDataSource的参数有Direction="Output"和"ReturnValue"的属性,但那似乎只针对直接写存储过程的,不好用在BLL层上。

------解决方案--------------------
不需要参数,只要BLL的Insert方法返回插入记录的ID,然后在ObjectDataSource的Inserted事件里获取e.ReturnValue就可以了。