关于DataSet的参数传递

这两天项目要做一个调用存储过程的共通方法,

所以就做了两个类,一个data类,负责用sqlAdapter调用存储过程,

一个business类,把存储过程用的参数,分装在dataset中,之后调用data类的方法,

data类实例.CMPSpKick( string strSPName, DataSet dtsInParam, DataSet dtsOutParam )

因为DataSet的对象性,所以即使在不用ref,out这些关键字的情况下,存储过程的输出参数也可以通过

dtsOutParam 返回到business类中。

ok,在ap服务端这样做一点问题都没有,所以,兴高采烈的把他也拷贝在了通过webservice访问server的Client

端,这时问题出现了,dtsOutParam 并不是像上面调用那样把存储过程的输出参数返回来,而是

dtsOutParam 还是原来的结构,根本就没有变化,百思不得其解呀,都是对象传递,为什么会不一样呢

山穷水复疑无路,柳暗花明又一村。怀着不解的心情看了看webservice在客户端生成的代理类,

真是豁然开朗,在代理类中,输入和输出是完全分开来的,就是说如果没有使用ref,out这些关键字,

那么webservice就只它当作输入参数,即使是dataset这种对象型的。因为在输出方法中完全没有定义,

所以也就不会传回来任何值了。看来对象也有其局限性,其实想一想就明白了,不再一台机器上,这种地址的

传递也就毫无意义了!

以上只是各人所想,如有差错,请各位指正。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值