在三层中,FormView + ObjectDataSource 取存储过程返回值

 

三层架构中,表示层用FormView +ObjectDataSource 添加数据,然后取返回值的实现方法。

存储过程

Model层

 

DAL层

 

BLL层

ASPX页面

ASPX.CS

 

总结:之前没有使用三层时,没有实体层,ObjectDataSource可以直接跟存储过程连接,还可以在

ASPX页面使用下面代码

         <InsertParameters>

              <asp:Parameter Name="Title" Type="String" />  

               <asp:Parameter Direction="Output" Name="Return" Type="Int32" />   

           </InsertParameters>

接着在ASPX.CS页面

    protected void ObjectDataSource1_Inserted(object sender, ObjectDataSourceStatusEventArgs e)

    {

        // e.Command.Parameters[1].Value.ToString()就是返回值

}

取得。

如今多了实体层,实体对应了数据库表结构,无法再用上面的方法或者返回值,只能用e.ReturnValue

这样问题可以解决,但是还有一些疑问:

看了一些三层的例子,按她们普遍的做法,这里BLLint Add(string Title)函数应该是int Add(NewData newData),就说对象在ASPX.CS里面构造,适用于用很多textbox + 一个button做的页面,这样很容易赋值,也很容易取返回值,但是用FormView +ObjectDataSource就实现不了,非得给ObjectDataSourceInsert事件对应正确的函数,所以我能想到的就是这样做。那这样子还是正确的三层吗?看了很多三层的例子,大家理解都不一样,不过没有见过对数据进行CRUD操作用ObjectDataSource去实现的,都是在ASPX.CS进行大量的编码的,感觉就是以前.net1.1的样子,代码多了,但是调试也方便了。

PS:想把刚刚学到的东西给写出来,没想到其实很难的,希望对大家有一点帮助吧。

posted @ 2008-02-18 03:24 yezizhe 阅读(268) 评论(0)  编辑 收藏

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-02-18 03:33 编辑过
 
另存  打印