再webservice中有两个方法(TSCL 为类对象)
  [WebMethod]
    public int InsertTSCl(TSCL tl)    
    {
        return TSCLManage.AddTSCL(tl);
    }
    [XmlInclude(typeof(TSCL))]
    [WebMethod]
    public TSCL GetTscl()  
    {
        Model.TSCL tl = new Model.TSCL();
        return tl;    }
再另一项目中中引用,以下是Button事件中:
   private void button8_Click(object sender, EventArgs e)        {       
            localhostlogin.loginServiceSoapClient tl = new localhostlogin.loginServiceSoapClient();
            tl.GetTscl().BTSD_NAME = txtbtsbm.Text.Trim();   //再调试中都可以得到文本框中的值,得不到tl.GetTscl().BTSD_NAME值,什么原因???
            tl.GetTscl().BTSR_NAME = txtbtsr.Text.Trim();
            tl.GetTscl().TS_DETAIL = txttitle.Text.Trim();
            tl.GetTscl().CFJY = txttsjy.Text.Trim();
            tl.GetTscl().LXFS = txtlxfs.Text.Trim();
            tl.GetTscl().PUSHDATE = DateTime.Now;            string yy = DateTime.Now.Year.ToString();
            string mm = DateTime.Now.Month.ToString();
            string dd = DateTime.Now.Day.ToString();
            string hh = DateTime.Now.Hour.ToString();
            string min = DateTime.Now.Minute.ToString();
            string ss = DateTime.Now.Second.ToString();
            string datestr = yy + mm + dd + hh + min + ss;
            tl.GetTscl().TSSH = datestr;            int val = tl.InsertTSCl(tl.GetTscl());
            if (val>0)
            {
                MessageBox.Show("提交成功,请耐心等待,会尽快给您回复");
            }
            else
            {
                MessageBox.Show("很抱歉,系统繁忙,请稍后再试");
            } }问题在注释部分,在线等着,急急!!!webservice类对象引用winform

解决方案 »

  1.   

    你这里就是简单的new了一个对象,但是没有对属性赋值,就当然没有值了。
     [WebMethod]
        public TSCL GetTscl()  
        {
            Model.TSCL tl = new Model.TSCL();
            return tl;
     
        }
      

  2.   


    恩,我new一个对象是为了在另一个项目中调用这个对象,然后再对对象中的属性进行赋值,不能这样写吗??我该如何改???
      

  3.   


    恩,我new一个对象是为了在另一个项目中调用这个对象,然后再对对象中的属性进行赋值,不能这样写吗??我该如何改???这样可以,localhostlogin.loginServiceSoapClient,这个是webservice里面的类名吗?
      

  4.   


    恩,我new一个对象是为了在另一个项目中调用这个对象,然后再对对象中的属性进行赋值,不能这样写吗??我该如何改???这样可以,localhostlogin.loginServiceSoapClient,这个是webservice里面的类名吗?localhostlogin是添加web服务的命名空间
      

  5.   

    tl.GetTscl().BTSD_NAME
    还有下面几行和int val = tl.InsertTSCl(tl.GetTscl());
    每次都创建了一个新对象
      

  6.   

    我每一次调用GetTscl()方法,都又重新创建了一个新的对象
      

  7.   

    说个题外话,以下代码
    string yy = DateTime.Now.Year.ToString();
                string mm = DateTime.Now.Month.ToString();
                string dd = DateTime.Now.Day.ToString();
                string hh = DateTime.Now.Hour.ToString();
                string min = DateTime.Now.Minute.ToString();
                string ss = DateTime.Now.Second.ToString();
                string datestr = yy + mm + dd + hh + min + ss;string datestr = DateTime.Now.ToString("yyyyMMddHHmmss");
      

  8.   

    TSCL obj=tl.GetTscl()[
    obj.BTSD_NAME=xxxx;
    obj.BTSR_NAME=yyyy;
    .....
    tl.InsertTSCl(obj);
      

  9.   

    恩,非常感谢各位,添加using命名空间在配上9楼的方法就对啦,非常感谢!!!