关于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这种对象型的。因为在输出方法中完全没有定义, 所以也就不会传回来任何值了。看来对象也有其局限性,其实想一想就明白了,不再一台机器上,这种地址的 传递也就毫无意义了! 以上只是各人所想,如有差错,请各位指正。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 理解 AngularJS $q service and promises
- scala – 在akka中手动创建actor层次结构
- 是否有可能拦截对AngularJS中HTTP OPTIONS预检的响应?
- angularjs – 如何更改Angular Chart.js上的工具提示
- twitter-bootstrap – Knockout Twitter Bootstrap Popover
- 如何将当前行编辑在vim的屏幕顶部
- Advanced Programming in UNIX Environment Episode 27
- .net 中文传参
- 角2 ngrx(redux)形式
- unix – 为什么行#!/ bin / ksh是shell脚本中的第一行