asp.net web服务程序输出xml格式文档

55 篇文章 0 订阅
18 篇文章 0 订阅
其实webservice并不是那么的神秘,它也不过只是个接口,对我们而言,侧重点依然是接口函数的编写.下面,我将给出我们的例子所需要的接口函数. 
  [WebMethod(Description="查询以获取需要的课件信息")] 
  public XmlDataDocument GetSiteAData(string AssignName) 
  { 
  XmlDataDocument xd=new XmlDataDocument(); // 
  DataSet ds=new DataSet(); 
  CStoreProc cp=new CStoreProc("SearchAssign"); 
  cp.AddParIn("@keywords",SqlDbType.VarChar,30,AssignName); 
  cp.AddParOut("@res",SqlDbType.Int); 
  if(cp.SelectProc()) //如果执行成功,存储过程 
  { 
  cp.myData.EnforceConstraints=false; //不进行格式严格检查 
  if((int)cp.GetReturnValue("@res")==-1) 
  { 
  string xml=""; 
  xd.LoadXml(xml); 
  return xd; 
  } 
  xd=new XmlDataDocument(cp.myData); 
  XmlNode root1=xd.DocumentElement; 
  XmlNodeList roots=root1.SelectNodes("list"); 
  foreach(XmlNode roota in roots) //为所有元素加上站点名称标记 
  { 
  XmlElement Link=xd.CreateElement("SiteName"); 
  Link.InnerText=ConfigurationSettings.AppSettings["SiteName"].ToString(); 
  roota.AppendChild(Link); 
  } 
  return xd; 
  } 
  else return null; 
  }

  这是获取资源站点信息的一个接口函数.里面大部分的代码,我想对于有一定asp.net基础的朋友来说,都应该是一看就明白,这里只说明下CStoreProc,这是我封装的一个存储过程类,主要功能是执行各种类型的存储过程.

  细心的朋友可能会发现这个函数的返回类型似乎比较特殊,是个xml的文档.我们在前面已经说过,webservice只能传输序列化数据,xml显然满足 条件,但比如hash表之类的非

序列化数据,是不能传输的,xml使用最为广泛,而且考虑到跨平台应用,所以这里我们只以xml数据的传输来示例.


本人示例代码:

 [WebMethod(Description = "从雨量数据库中返回雨量值")]
    public XmlDataDocument getRainVlue()
    {
        if (IsCanConnectioned==true)
        {
            string sqlcmd=string.Format("SELECT DISTINCT dbo.RAIN_REALTIME.GprsID, ABS(dbo.RAIN_REALTIME.RainValue - 100) / 10 AS rainValue, dbo.USERMESSAGE.StationName, dbo.USERMESSAGE.subdistrict, dbo.USERMESSAGE.StationAddress, dbo.RAIN_REALTIME.DataTime FROM dbo.RAIN_REALTIME INNER JOIN dbo.USERMESSAGE ON dbo.RAIN_REALTIME.GprsID = dbo.USERMESSAGE.StationNo");
            SqlDataAdapter sda = new SqlDataAdapter(sqlcmd, strConnection);
            DataSet ds = new DataSet();
            sda.Fill(ds);


            XmlDataDocument xd = new XmlDataDocument(ds);


            return xd;
        }
        else
        {
            return null;
        }
        
    }

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值