using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Runtime.Serialization;namespace Uni.Common
{
    [Serializable]
    [System.ComponentModel.DesignerCategory("Code")]
    public class INVMBData : DataSet
    {
        public const string INVMB_TABLE = "INVMB";        public const string MB001_FIELD = "MB001";
        public const string MB002_FIELD = "MB002";
        public const string MB003_FIELD = "MB003";
        public const string MB004_FIELD = "MB004";
        public const string MB005_FIELD = "MB005";
        public const string MB006_FIELD = "MB006";
        public const string MB007_FIELD = "MB007";
        public const string MB008_FIELD = "MB008";
        public const string MB009_FIELD = "MB009";
        public const string MB010_FIELD = "MB010";        public INVMBData(SerializationInfo info, StreamingContext context)
            : base(info, context)
        { }        public INVMBData()
        {
            BuildDataTables();
        }        private void BuildDataTables()
        {
            DataTable table = new DataTable(INVMB_TABLE);
            DataColumnCollection columns = table.Columns;            columns.Add(MB001_FIELD, typeof(System.String));
            columns.Add(MB002_FIELD, typeof(System.String));
            columns.Add(MB003_FIELD, typeof(System.String));
            columns.Add(MB004_FIELD, typeof(System.String));
            columns.Add(MB005_FIELD, typeof(System.String));
            columns.Add(MB006_FIELD, typeof(System.String));
            columns.Add(MB007_FIELD, typeof(System.String));
            columns.Add(MB008_FIELD, typeof(System.String));
            columns.Add(MB009_FIELD, typeof(System.String));
            columns.Add(MB010_FIELD, typeof(System.String));            this.Tables.Add(table);
        }
    }
}
Web服務
  INVMBSystem item=new INVMBSystem();
        [WebMethod]
        public INVMBData GetDatasBy(string keywords)
        {
            return item.GetDatasBy(keywords);
        }客戶端調用
INVMB.INVMBService inv = new Uni.C_Erp.INVMB.INVMBService();
            
          INVMBData  ds=inv.GetDatasBy("MB001='#U1-AU1022'");出錯,提示如下:
錯誤 1 無法將型別 'Uni.C_Erp.INVMB.NewDataSet' 隱含轉換為 'Uni.Common.INVMBData'為什麼用客戶端調用後就變成NewDataSet?應該如何處理?謝謝!

解决方案 »

  1.   

    webservice可以傳輸的類型很少,連DataTable都不行,更不用說你的INVMBData了
      

  2.   

    GetDatasBy怎么写的
      
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://feiyun0112.cnblogs.com/
      

  3.   

    INVMBData类在你生成客户端代理类的时候,应该会自动重新生成一个的,你把代理类中的这个类去掉,保持和你的服务端使用的INVMBData类为同一个类(放到类库里,或共同业务库里)。
    至于NewDataSet,不太明白,看看INVMBData的内部实现时怎样的。
      

  4.   

    web service能传输的类型的确很少   ,如果网服务器传的话,只能是最基本的数据类型客户端调用的话dataset是可以,不知道你那自己是不是可以通过
      

  5.   


    public class INVMBData : DataSet
      

  6.   

    將服務及客戶端調用改為DataSet即可
    Web服務
      INVMBSystem item=new INVMBSystem();
            [WebMethod]
            public DataSet GetDatasBy(string keywords)
            {
                return item.GetDatasBy(keywords);
            }客戶端調用
    INVMB.INVMBService inv = new Uni.C_Erp.INVMB.INVMBService();
               
              DataSet  ds=inv.GetDatasBy("MB001='#U1-AU1022'");