熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

C#高級編程:會議登記 Web服務[3]

2013-11-13 10:49:44  來源: .NET編程 
    ——此文章摘自《C#高級編程(第版)》定價元 特價元 購買

                ds = (DataSet)Application[ds];
                dsTables[Events]Clear();
                daEventsFill(ds Events);
                ApplicationLock();
                Application[ds] = ds;
                ApplicationUnLock();
                oleDbConnectionClose();
             }
          }

    最後返回queryResult以便讓客戶知道查詢是否成功
          [WebMethod]
          public int AddEvent(String eventName String eventRoom
                              String eventAttendees String eventDate)
          {
            
             return queryResult;
          }

    至此就完成了Web服務的所有工作如同以前可以對Web服務進行測試測試的方法就是把Web浏覽器指向asmx文件這樣不用編寫任何客戶機代碼就可以添加記錄查看由GetData()返回的DataSet的XML表示

    在繼續之前需要討論DataSet對象和Web服務的組合使用初看起來這似乎是交換數據的一種荒謬方式而實際上這是一種極其有用的技術

    DataSet類的用途非常廣泛如果查看為GetData()方法生成的WSDL就會看到如下內容
         <s:element FTEL=GetDataResponse>
           <s:complexType />
             <s:sequence>
                <s:element minOccurs= maxOccurs= FTEL=GetDataResult>
                <s:complexType>
                    <s:sequence>
                      <s:element ref=s:schema />
                      <s:any />
                  </s:sequence>
                </s:complexType>
             </s:element>
           </s:sequence>
         </s:complexType>
       </s:element>

    可以看出這是非常一般的代碼允許傳送進來的DataSet對象包含用內聯模式指定的任何數據但是這表示WSDL沒有完整地描述Web服務對於NET客戶這不是個問題在前面的示例中傳送簡單的字符串時一切都很正常惟一的區別是我們交換了一個DataSet對象但是NET客戶必須提前了解要傳送的數據或者某個等價的DataSet類才能訪問數據

    這個問題的解決方法是把數據重新封裝為另一種格式例如結構數組但是這裡使用DataSet對象不會出問題而且還可以大大簡化其他代碼

[]  []  []  


From:http://tw.wingwit.com/Article/program/net/201311/14593.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.