zoukankan      html  css  js  c++  java
  • windowPhone 小项目 列车车次查询

    学习wp好长一段时间了,做了很多的小项目 。和大家一起分享一下心得 。

    列车时刻表查询 是我的其中一个小项目,通过调用网上的免费的web服务完成信息的获取,非常感谢 http://webxml.com.cn/网站 为我们这些学生程序员提供了很多免费的服务。

    里面的很多服务都可以利用 做出自己的小项目来,通过这个简单的车次查询小应用, 希望给热爱wp程序开发的同学带来开放程序的热情,用自己的创新思维开发新的应用,为wp应用世界不断辉煌贡献自己的力量。谢谢...

    开始啦 .......

     vs2010

     blend

     模拟器打开了没?

    分享自己的一点心得 ,每当我想做小项目的时候我都会在一张纸上勾画一下界面 这样在用blend的时候可以很快的把项目的界面给大家起来 这样我们就可以很快的投入到代码的编写了。

    我想大家一定都会理解我画的界面 虽然不是很好看(我不是美工哦)希望能理解我每个箭头所指的应用什么控件 ,顺时针 Pagetitle(车次查询) TextBox ListBox applicationbarIcon  textBlocks

    这是设计好的界面

    在这里最重要的是设计listbox的项模版和数据模版.

    讲讲我在blend中如何设计的.

    由于我是设计完了所以选择编辑当前项.

    这里的TrainStation arriveTime StartTime KM  是TextBlock的名字  这样命名 是和你的类名一样的 这样就不会在绑定数据的时候出错哦 !

    当你设计好了这个界面以后就可以单击 这个来完成设计了.

    界面设计好了以后想必大家都期待写代码了吧。先别急 数据源咱们还没分析呢

    打开我给大家推荐的网站

     http://webxml.com.cn/

    找到

    web服务 http://webservice.webxml.com.cn/WebServices/TrainTimeWebService.asmx

    打开这个服务 大家会看到很多的调用方法 如何去使用这些方法呢

    。。。。。。。

    用vs打开我们刚才设计好的项目,添加服务

    在地址栏中输入web服务地址哦!

    添加成功完服务后我们来分析我们应该使用那个方法呢 这么多的方法想必大家都想使用 做的应用越强大越好,现在我在这里只说说

    getDetailInfoByTrainCode

     这个方法吧 ,

    单击调用会在ie中

      <?xml version="1.0" encoding="utf-8" ?>
    - <DataSet xmlns="http://WebXml.com.cn/">
    - <xs:schema id="getDetailInfo" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    - <xs:element name="getDetailInfo" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
    - <xs:complexType>
    - <xs:choice minOccurs="0" maxOccurs="unbounded">
    - <xs:element name="TrainDetailInfo">
    - <xs:complexType>
    - <xs:sequence>
      <xs:element name="TrainStation" type="xs:string" minOccurs="0" />
      <xs:element name="ArriveTime" type="xs:string" minOccurs="0" />
      <xs:element name="StartTime" type="xs:string" minOccurs="0" />
      <xs:element name="KM" type="xs:short" minOccurs="0" />
      </xs:sequence>
      </xs:complexType>
      </xs:element>
      </xs:choice>
      </xs:complexType>
      </xs:element>
      </xs:schema>
    - <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
    - <getDetailInfo xmlns="">
    - <TrainDetailInfo diffgr:id="TrainDetailInfo1" msdata:rowOrder="0" diffgr:hasChanges="inserted">
      <TrainStation>哈尔滨(车次:K1124\K1121)</TrainStation>
      <ArriveTime />
      <StartTime>17:35:00</StartTime>
      <KM>0</KM>
      </TrainDetailInfo>
    - <TrainDetailInfo diffgr:id="TrainDetailInfo2" msdata:rowOrder="1" diffgr:hasChanges="inserted">
      <TrainStation>兰棱</TrainStation>
      <ArriveTime>18:25:00</ArriveTime>
      <StartTime>18:26:00</StartTime>
      <KM>72</KM>
      </TrainDetailInfo>
    - <TrainDetailInfo diffgr:id="TrainDetailInfo3" msdata:rowOrder="2" diffgr:hasChanges="inserted">
      <TrainStation>长春</TrainStation>
      <ArriveTime>20:14:00</ArriveTime>
      <StartTime>20:24:00</StartTime>
      <KM>246</KM>
      </TrainDetailInfo>
    - <TrainDetailInfo diffgr:id="TrainDetailInfo4" msdata:rowOrder="3" diffgr:hasChanges="inserted">
      <TrainStation>公主岭</TrainStation>
      <ArriveTime>21:02:00</ArriveTime>
      <StartTime>21:04:00</StartTime>
      <KM>308</KM>
      </TrainDetailInfo>
    - <TrainDetailInfo diffgr:id="TrainDetailInfo5" msdata:rowOrder="4" diffgr:hasChanges="inserted">
      <TrainStation>四平</TrainStation>
      <ArriveTime>21:43:00</ArriveTime>
      <StartTime>21:46:00</StartTime>
      <KM>361</KM>
      </TrainDetailInfo>
    - <TrainDetailInfo diffgr:id="TrainDetailInfo6" msdata:rowOrder="5" diffgr:hasChanges="inserted">
      <TrainStation>铁岭</TrainStation>
      <ArriveTime>23:01:00</ArriveTime>
      <StartTime>23:04:00</StartTime>
      <KM>479</KM>
      </TrainDetailInfo>
    - <TrainDetailInfo diffgr:id="TrainDetailInfo7" msdata:rowOrder="6" diffgr:hasChanges="inserted">
      <TrainStation>沈阳北</TrainStation>
      <ArriveTime>00:24:00</ArriveTime>
      <StartTime>00:40:00</StartTime>
      <KM>546</KM>
      </TrainDetailInfo>
    - <TrainDetailInfo diffgr:id="TrainDetailInfo8" msdata:rowOrder="7" diffgr:hasChanges="inserted">
      <TrainStation>大虎山</TrainStation>
      <ArriveTime>02:50:00</ArriveTime>
      <StartTime>02:53:00</StartTime>
      <KM>673</KM>
      </TrainDetailInfo>
    - <TrainDetailInfo diffgr:id="TrainDetailInfo9" msdata:rowOrder="8" diffgr:hasChanges="inserted">
      <TrainStation>沟帮子</TrainStation>
      <ArriveTime>03:21:00</ArriveTime>
      <StartTime>03:24:00</StartTime>
      <KM>715</KM>
      </TrainDetailInfo>
    - <TrainDetailInfo diffgr:id="TrainDetailInfo10" msdata:rowOrder="9" diffgr:hasChanges="inserted">
      <TrainStation>锦州</TrainStation>
      <ArriveTime>04:06:00</ArriveTime>
      <StartTime>04:15:00</StartTime>
      <KM>779</KM>
      </TrainDetailInfo>
    - <TrainDetailInfo diffgr:id="TrainDetailInfo11" msdata:rowOrder="10" diffgr:hasChanges="inserted">
      <TrainStation>葫芦岛</TrainStation>
      <ArriveTime>04:48:00</ArriveTime>
      <StartTime>04:51:00</StartTime>
      <KM>829</KM>
      </TrainDetailInfo>
    - <TrainDetailInfo diffgr:id="TrainDetailInfo12" msdata:rowOrder="11" diffgr:hasChanges="inserted">
      <TrainStation>山海关</TrainStation>
      <ArriveTime>06:19:00</ArriveTime>
      <StartTime>06:25:00</StartTime>
      <KM>963</KM>
      </TrainDetailInfo>
    - <TrainDetailInfo diffgr:id="TrainDetailInfo13" msdata:rowOrder="12" diffgr:hasChanges="inserted">
      <TrainStation>北戴河</TrainStation>
      <ArriveTime>06:54:00</ArriveTime>
      <StartTime>06:57:00</StartTime>
      <KM>1001</KM>
      </TrainDetailInfo>
    - <TrainDetailInfo diffgr:id="TrainDetailInfo14" msdata:rowOrder="13" diffgr:hasChanges="inserted">
      <TrainStation>昌黎</TrainStation>
      <ArriveTime>07:18:00</ArriveTime>
      <StartTime>07:31:00</StartTime>
      <KM>1029</KM>
      </TrainDetailInfo>
    - <TrainDetailInfo diffgr:id="TrainDetailInfo15" msdata:rowOrder="14" diffgr:hasChanges="inserted">
      <TrainStation>滦县</TrainStation>
      <ArriveTime>07:58:00</ArriveTime>
      <StartTime>08:02:00</StartTime>
      <KM>1070</KM>
      </TrainDetailInfo>
    - <TrainDetailInfo diffgr:id="TrainDetailInfo16" msdata:rowOrder="15" diffgr:hasChanges="inserted">
      <TrainStation>唐山</TrainStation>
      <ArriveTime>08:53:00</ArriveTime>
      <StartTime>08:59:00</StartTime>
      <KM>1141</KM>
      </TrainDetailInfo>
    - <TrainDetailInfo diffgr:id="TrainDetailInfo17" msdata:rowOrder="16" diffgr:hasChanges="inserted">
      <TrainStation>芦台</TrainStation>
      <ArriveTime>09:29:00</ArriveTime>
      <StartTime>09:34:00</StartTime>
      <KM>1183</KM>
      </TrainDetailInfo>
    - <TrainDetailInfo diffgr:id="TrainDetailInfo18" msdata:rowOrder="17" diffgr:hasChanges="inserted">
      <TrainStation>天津</TrainStation>
      <ArriveTime>10:35:00</ArriveTime>
      <StartTime>10:54:00</StartTime>
      <KM>1264</KM>
      </TrainDetailInfo>
    - <TrainDetailInfo diffgr:id="TrainDetailInfo19" msdata:rowOrder="18" diffgr:hasChanges="inserted">
      <TrainStation>霸州</TrainStation>
      <ArriveTime>12:21:00</ArriveTime>
      <StartTime>12:25:00</StartTime>
      <KM>1351</KM>
      </TrainDetailInfo>
    - <TrainDetailInfo diffgr:id="TrainDetailInfo20" msdata:rowOrder="19" diffgr:hasChanges="inserted">
      <TrainStation>任丘</TrainStation>
      <ArriveTime>13:00:00</ArriveTime>
      <StartTime>13:03:00</StartTime>
      <KM>1406</KM>
      </TrainDetailInfo>
    - <TrainDetailInfo diffgr:id="TrainDetailInfo21" msdata:rowOrder="20" diffgr:hasChanges="inserted">
      <TrainStation>深州</TrainStation>
      <ArriveTime>14:52:00</ArriveTime>
      <StartTime>14:56:00</StartTime>
      <KM>1498</KM>
      </TrainDetailInfo>
    - <TrainDetailInfo diffgr:id="TrainDetailInfo22" msdata:rowOrder="21" diffgr:hasChanges="inserted">
      <TrainStation>衡水</TrainStation>
      <ArriveTime>15:26:00</ArriveTime>
      <StartTime>15:32:00</StartTime>
      <KM>1533</KM>
      </TrainDetailInfo>
    - <TrainDetailInfo diffgr:id="TrainDetailInfo23" msdata:rowOrder="22" diffgr:hasChanges="inserted">
      <TrainStation>枣强</TrainStation>
      <ArriveTime>15:56:00</ArriveTime>
      <StartTime>16:00:00</StartTime>
      <KM>1564</KM>
      </TrainDetailInfo>
    - <TrainDetailInfo diffgr:id="TrainDetailInfo24" msdata:rowOrder="23" diffgr:hasChanges="inserted">
      <TrainStation>清河城</TrainStation>
      <ArriveTime>16:44:00</ArriveTime>
      <StartTime>16:49:00</StartTime>
      <KM>1613</KM>
      </TrainDetailInfo>
    - <TrainDetailInfo diffgr:id="TrainDetailInfo25" msdata:rowOrder="24" diffgr:hasChanges="inserted">
      <TrainStation>临清</TrainStation>
      <ArriveTime>17:20:00</ArriveTime>
      <StartTime>17:25:00</StartTime>
      <KM>1639</KM>
      </TrainDetailInfo>
    - <TrainDetailInfo diffgr:id="TrainDetailInfo26" msdata:rowOrder="25" diffgr:hasChanges="inserted">
      <TrainStation>聊城</TrainStation>
      <ArriveTime>18:00:00</ArriveTime>
      <StartTime>18:03:00</StartTime>
      <KM>1685</KM>
      </TrainDetailInfo>
    - <TrainDetailInfo diffgr:id="TrainDetailInfo27" msdata:rowOrder="26" diffgr:hasChanges="inserted">
      <TrainStation>梁山</TrainStation>
      <ArriveTime>18:49:00</ArriveTime>
      <StartTime>19:03:00</StartTime>
      <KM>1761</KM>
      </TrainDetailInfo>
    - <TrainDetailInfo diffgr:id="TrainDetailInfo28" msdata:rowOrder="27" diffgr:hasChanges="inserted">
      <TrainStation>菏泽</TrainStation>
      <ArriveTime>19:50:00</ArriveTime>
      <StartTime>19:52:00</StartTime>
      <KM>1841</KM>
      </TrainDetailInfo>
    - <TrainDetailInfo diffgr:id="TrainDetailInfo29" msdata:rowOrder="28" diffgr:hasChanges="inserted">
      <TrainStation>商丘南</TrainStation>
      <ArriveTime>21:01:00</ArriveTime>
      <StartTime>21:03:00</StartTime>
      <KM>1946</KM>
      </TrainDetailInfo>
    - <TrainDetailInfo diffgr:id="TrainDetailInfo30" msdata:rowOrder="29" diffgr:hasChanges="inserted">
      <TrainStation>亳州</TrainStation>
      <ArriveTime>21:45:00</ArriveTime>
      <StartTime>21:48:00</StartTime>
      <KM>2010</KM>
      </TrainDetailInfo>
    - <TrainDetailInfo diffgr:id="TrainDetailInfo31" msdata:rowOrder="30" diffgr:hasChanges="inserted">
      <TrainStation>阜阳</TrainStation>
      <ArriveTime>23:00:00</ArriveTime>
      <StartTime>23:10:00</StartTime>
      <KM>2114</KM>
      </TrainDetailInfo>
    - <TrainDetailInfo diffgr:id="TrainDetailInfo32" msdata:rowOrder="31" diffgr:hasChanges="inserted">
      <TrainStation>淮滨</TrainStation>
      <ArriveTime>00:14:00</ArriveTime>
      <StartTime>00:18:00</StartTime>
      <KM>2175</KM>
      </TrainDetailInfo>
    - <TrainDetailInfo diffgr:id="TrainDetailInfo33" msdata:rowOrder="32" diffgr:hasChanges="inserted">
      <TrainStation>潢川</TrainStation>
      <ArriveTime>01:03:00</ArriveTime>
      <StartTime>01:05:00</StartTime>
      <KM>2230</KM>
      </TrainDetailInfo>
    - <TrainDetailInfo diffgr:id="TrainDetailInfo34" msdata:rowOrder="33" diffgr:hasChanges="inserted">
      <TrainStation>麻城</TrainStation>
      <ArriveTime>02:34:00</ArriveTime>
      <StartTime>02:38:00</StartTime>
      <KM>2350</KM>
      </TrainDetailInfo>
    - <TrainDetailInfo diffgr:id="TrainDetailInfo35" msdata:rowOrder="34" diffgr:hasChanges="inserted">
      <TrainStation>黄州</TrainStation>
      <ArriveTime>03:27:00</ArriveTime>
      <StartTime>03:29:00</StartTime>
      <KM>2417</KM>
      </TrainDetailInfo>
    - <TrainDetailInfo diffgr:id="TrainDetailInfo36" msdata:rowOrder="35" diffgr:hasChanges="inserted">
      <TrainStation>浠水</TrainStation>
      <ArriveTime>03:56:00</ArriveTime>
      <StartTime>03:58:00</StartTime>
      <KM>2446</KM>
      </TrainDetailInfo>
    - <TrainDetailInfo diffgr:id="TrainDetailInfo37" msdata:rowOrder="36" diffgr:hasChanges="inserted">
      <TrainStation>蕲春</TrainStation>
      <ArriveTime>04:22:00</ArriveTime>
      <StartTime>04:24:00</StartTime>
      <KM>2476</KM>
      </TrainDetailInfo>
    - <TrainDetailInfo diffgr:id="TrainDetailInfo38" msdata:rowOrder="37" diffgr:hasChanges="inserted">
      <TrainStation>九江</TrainStation>
      <ArriveTime>05:36:00</ArriveTime>
      <StartTime>05:49:00</StartTime>
      <KM>2573</KM>
      </TrainDetailInfo>
    - <TrainDetailInfo diffgr:id="TrainDetailInfo39" msdata:rowOrder="38" diffgr:hasChanges="inserted">
      <TrainStation>南昌</TrainStation>
      <ArriveTime>07:55:00</ArriveTime>
      <StartTime />
      <KM>2708</KM>
      </TrainDetailInfo>
      </getDetailInfo>
      </diffgr:diffgram>
      </DataSet>
    ——————————————————————————————————
    对于这个xml数据我们需要
    <TrainStation>九江</TrainStation>
      <ArriveTime>05:36:00</ArriveTime>
      <StartTime>05:49:00</StartTime>
      <KM>2573</KM>
    解析哦
    当我们输入车次时候我们需要的是这个数据在获取这个数据之前我们需要设计个类

    public class TrainDetailInfo
        {
            public string TrainStation { get; set; }
            public string ArriveTime { get; set; }
            public string StartTime { get; set; }
            public string KM { get; set; }

        }

    好了写到这里 开始进入最重要的地方哦 集中精力哦!

    调用这个web服务我们需要建立一个实例 

             public TrainCode()
            {
                 InitializeComponent();

             //建立一个web服务的client实例
                 ServiceReference1.TrainTimeWebServiceSoapClient client= new ServiceReference1.TrainTimeWebServiceSoapClient();

            //处理获取信息完成的事件

         
                client.getDetailInfoByTrainCodeCompleted += new EventHandler<ServiceReference1.getDetailInfoByTrainCodeCompletedEventArgs>(client_getDetailInfoByTrainCodeCompleted);
            }

            void client_getDetailInfoByTrainCodeCompleted(object sender, ServiceReference1.getDetailInfoByTrainCodeCompletedEventArgs e)
            {
                //throw new NotImplementedException();
                if (e.Result==null)
                {
                    MessageBox.Show("你查询的车次不存在!");
                    return;
                }


                try
                {
                  //e.result为反回来的xml数据下面这段代码就是解析xml数据的核心代码 属于linq 查询

                 //需要添加using System.Xml.Linq;using System.Linq;引用

                 //

                   var list = e.Result.Nodes[0];
                  
             
                    var train = from table in list.Descendants("TrainDetailInfo")//类初始化器
                                select new TrainDetailInfo
                                {
                                    TrainStation = (string)table.Element("TrainStation"),
                                 
                                  
                                    StartTime = (string)table.Element("StartTime"),
                                  
                                    ArriveTime =(string) table.Element("ArriveTime").Value,
                                    KM = (string)table.Element("KM")
                                 
                                };

                  //这里是绑定数据

                    this.listTrain.ItemsSource = train;

             
                    
                }
                catch
                {
                    MessageBox.Show("没有找到你要的信息!");
                }
                   
            }

          
                 private void AppBar_search_Click_Click(object sender, System.EventArgs e)
            {
                      client.getDetailInfoByTrainCodeAsync(textBox1.Text,null);

            }

    好了大家都写完了没 出现很多bug?

    希望在家在遇到真么不懂的直接baidu和google吧 !


                   有什么不懂的地方大家一起讨论哦!

     
     
     
  • 相关阅读:
    安德鲁斯称三步系统相机
    Swift游戏开发实战教程(霸内部信息大学)
    ORA-00911:无效字符错误
    Java对多线程~~~Fork/Join同步和异步帧
    jquery跨域请求解决方案(我们寻找,我还没有添加验证)
    mysql 的load data infile要使用
    完整详细的说明GCD列(一)dispatch_async;dispatch_sync;dispatch_async_f;dispatch_sync_f
    Linux查看非root流程执行
    Android_显示器本身被卸载应用程序
    关于微软公有云Azure会计标准
  • 原文地址:https://www.cnblogs.com/fxiaoquan/p/2404120.html
Copyright © 2011-2022 走看看