当前位置: 代码迷 >> Web Service >> 怎样在WebService中使用DataTable,SqlParameter做参数,该怎么解决
  详细解决方案

怎样在WebService中使用DataTable,SqlParameter做参数,该怎么解决

热度:271   发布时间:2016-05-02 03:02:33.0
怎样在WebService中使用DataTable,SqlParameter做参数
我的WebService有一个类,
[WebService(Namespace   =   "http://tempuri.org/ ")]
        [WebServiceBinding(ConformsTo   =   WsiProfiles.BasicProfile1_1)]
        [ToolboxItem(false)]
        public   class   reDataSet   :   System.Web.Services.WebService
        {
                [WebMethod]
                public   DataSet   rDs(System.Data.SqlClient.SqlParameter   sp)
                {
                        DataSet   ds   =   new   DataSet();
                        return   ds;
                }
        }
参数中有SqlParameter类型的,但是在WinForm中引用后,
参数SqlParameter变成了形如
WinFormUseServices.TestServices.SqlParameter类型
的参数,
可是我想在WinForm中直接用SqlParameter类型为参数

请问该怎么才能实现


------解决方案--------------------
datatable在.net2.0之后是可xml序列化的,因此可以作为参数或返回值
sqlparameter不能序列化的应该,写个自定义类传递值吧
------解决方案--------------------
最好不要用 SqlParameter 类型为参数
------解决方案--------------------
首先,不能序列化/反序列化的类型是无法作为接口在WebService中使用。
其次,webservice本身就没有状态,你这样写就是要把db connection的信息写到参数里面,是很危险的设计。
最后,webservice不适合作DBAccess这层,并发,效率,安全都不合适,建议你直接使用ADO在WebService来做,接口改变一下,自定义类型。
  相关解决方案