999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于.NET的在線訂票Web Services應(yīng)用的設(shè)計

2013-12-31 00:00:00陶華
電子世界 2013年24期

【摘要】本文將通過一個在線訂票服務(wù)來充分說明Web Services的設(shè)計實現(xiàn)過程,以及在Web應(yīng)用程序中如何使用Web Services。以便大家能對Web Services的設(shè)計實現(xiàn)和使用過程有更深刻的理解。

【關(guān)鍵詞】Web服務(wù);.NET框架;XML;SOAP;在線訂票

該Web Services是一個在線訂票服務(wù),實現(xiàn)的功能主要包括:車次查找、車票預(yù)訂和查詢最新的消息。開發(fā)工具采用的是.NET平臺下的Visual Studio.NET,編程語言使用C#,后臺數(shù)據(jù)庫采用的是SQL Server 2003。

一、Web Services的總體設(shè)計

該在線訂票Web Services包括以下三個方法:

1)SearchTrain——根據(jù)參數(shù)查找車次,這些參數(shù)包括諸如出發(fā)日期、到達(dá)日期和出發(fā)地點等。

2)AddBooking——預(yù)訂所選車次的車票。

3)GetInformation——獲得最新的消息。

以上三個方法都需要與數(shù)據(jù)庫聯(lián)系,從數(shù)據(jù)庫表中提取相應(yīng)的數(shù)據(jù),以XML的格式、SOAP消息的方式返回給調(diào)用該服務(wù)的應(yīng)用程序。

二、Web Services數(shù)據(jù)庫設(shè)計

該Web Services數(shù)據(jù)庫采用SQL Server 2003。數(shù)據(jù)庫名稱為TrainService,數(shù)據(jù)庫中包含有關(guān)車次信息、車票有效期、訂票信息等的詳細(xì)資料。

這個數(shù)據(jù)庫中使用三個存儲過程,分別是SearchTrain、AddBooking和GetInformation。

1)SearchTrain存儲過程實現(xiàn)的功能是查找與參數(shù)相匹配的車次。這些參數(shù)包括:出發(fā)地點、到達(dá)地點、出發(fā)日期、開車時間和旅行類型。該存儲過程的完整源代碼如下:

CREATE PROCEDURE dbo.Searchtrain

@sStartingForm varchar(50),

@sDestination varchar(50),

@sArrivalDate detetime,

@sDdepartureDate datetime,

@iTravelClassID int

AS

Begin

set nocount on

select T.*,TC.travel_class_id form

Trains T inner join travel_class_cpacity TCSC

on TCSC.Train_id=T.Train_id

inner join travel_class TC

on TC.travel_class_id=TCSC.travel_class_id

where T.staring_form=@sStartingForm

and T.destination=@sdestination

and T.arrival_date=@dArrivalDate

and T.departure_date=@dDepartureDate

and TC.travel_class_id=@iTravelClassID

and TCSC.number_seats>0

end

GO

2)Addbooking存儲過程在Bookings表中插入一條記錄,實現(xiàn)訂票功能。該存儲過程的完整源代碼如下:

CREATE PROCEDURE dbo.AddBooking

@iTrainID int,

@iPassengerID int,

@iTravelClassID int,

@iBookingID int output

AS

Begin

set nocount on

Insert into Bookings

(Train_id,passenger_id,travel_class_id)

values

(@iTrainIDm@ipassengerID,@iTravelclass ID)

Select @iBookingID=@identity

end

GO

3)GetInformation存儲過程實現(xiàn)功能是從數(shù)據(jù)庫中返回消息的詳細(xì)資料。參數(shù)InformationID決定存儲過程返回的消息的類型。該存儲過程的完整源代碼如下:

CREATE PROCEDURE GetInformationTypeID

@iInformationTypeID smallint

AS

begin

set nocount on

select convert(varchar(12),infor_date)

as infor_date,description

from Information where

Information_type_id=@iInformation TypeID

end

GO

三、Web Services的實現(xiàn)

為了實現(xiàn)該Web Services,開發(fā)工具采用.NET平臺下的Visual Studio.NET,編程語言使用C#。使用Visual Studio.NET開發(fā)工具生成各種配置文件相對比較容易,不用完全從頭到尾自己寫,只需在已經(jīng)生成的文件上修改。同時,它還能自動引入默認(rèn)的名稱空間,進(jìn)行外部引用也容易,大大簡化了開發(fā)Web Services的過程,提高了開發(fā)效率。通過訪問創(chuàng)建的數(shù)據(jù)庫,該Web Services通過三個方法執(zhí)行以下操作:

1)根據(jù)出發(fā)日期、到達(dá)日期和出發(fā)地點等參數(shù)查找車次。

2)預(yù)訂所選車次的車票。

3)獲取最新的旅行消息。

針對要創(chuàng)建的在線訂票Web服務(wù)Online-WebService,需要引入以下兩個命名空間:

using System.Date.SqlClient;

using System.Configuration;

System.Date.SqlClient名稱空間允許程序中訪問數(shù)據(jù)訪問類,以便能夠訪問創(chuàng)建的SQL Server數(shù)據(jù)庫TrainService。using System.Configuration名稱空間允許使用ConfigurationSettings類訪問存儲在Web Services的Web.config文件中的連接字符串,這樣當(dāng)數(shù)據(jù)庫所在的服務(wù)器地址改變的時候,通過修改Web.config文件中的連接字符串可以順利、正確的訪問數(shù)據(jù)庫。

(1)Search Train方法的實現(xiàn)

這個方法用于查找與給定的參數(shù)值相匹配的車次。首先,需要使用WebMethod屬性來指出這個方法是一個科調(diào)用的Web方法,這樣ASP.NET在運(yùn)行時才可以提供所有能夠使這個方法在Internet上調(diào)用的信息管道。在這個屬性中Description參數(shù)用于描述該Web方法。因為在該Web方法中不需要保存會話狀態(tài),所以將EnableSession設(shè)置為1,這樣可以清除會話狀態(tài)所需的系統(tǒng)開銷,并可以大大提高應(yīng)用程序的性能。

[WebMethod(EnableSession=1,Description=”This method is used to search for Trains and returns the result as a DateSet”)]

以下語句進(jìn)行數(shù)據(jù)庫連接、執(zhí)行SQL語句命令和保存結(jié)果所需要的對象:

SqlConnection sqlConnection;

SqlDateAdapter sqlDateAdapter;

sqlConnection=new sqlconnection;

(ConfigurationSettings.AppSettings[“connectionSting”]);

在數(shù)據(jù)庫的連接過程中,通過Configur-ationSettings類的AppSettings屬性從Wen.config文件獲得連接字符串。該連接字符串出現(xiàn)在web.config文件的元素中:

pwd=36;detebase=Trainservice”/>

Web.config文件保存一個ASP.NET應(yīng)用程序的所有配置信息。該文件是一個XML文件,位于Web應(yīng)用程序的根目錄中,包括身份驗證類型、調(diào)試設(shè)置和會話處理等方面的信息。Web.config文件也為應(yīng)用程序保存一些具有特殊用途的設(shè)置,它使管理員在無需修改應(yīng)用程序代碼或重新啟動Web Service的情況下就能夠修改配置設(shè)置。

緊接著創(chuàng)建參數(shù)對象并設(shè)置它們的Value屬性,然后通過調(diào)用SelectCommand對象的Parameters集合的Add方法,將它們添加到Command對象中:

SqlParameter paramStarPlace=

new SqlParameter(“@sStartingForm”, SqlDbType.Varchar,50);

paramStartPlace.Value=starPlace;

sqlDataAdapter.SelectCommand.Para meters.Add(paramStartPlace);

對于所要傳遞給存儲過程的所有參數(shù),都執(zhí)行以上步驟。這些參數(shù)包括有:ParamDest-ination、ParamDepartureDate、Param zArrival和ParamTravelClassID。

所有參數(shù)都添加到Parameters集合之后,利用先前指派的存儲過程創(chuàng)建一個新的DataSet對象,并使用sqlDAtaAdapter的Fill方法填充該對象。Fill方法的參數(shù)是要被填充的DataSet和作為數(shù)據(jù)源使用的表的名稱:

Train=new DataSet(); sqlDataAdapter.Fill(Train,”Trains”);

整個方法執(zhí)行將返回一個DataSet數(shù)據(jù)集,它具有強(qiáng)大的功能,該功能允許將復(fù)雜的信息和關(guān)系存儲在一個智能的XML結(jié)構(gòu)中。實際上,DataSet提供一個客戶端能夠使用的數(shù)據(jù)庫的副本,不過該副本的連接時斷開的,從而減少了服務(wù)器必須維持的有效數(shù)據(jù)庫連接的次數(shù)。

SearchTrain方法整體被封裝在try…catch…finally塊中,以捕捉任何可能發(fā)生的錯誤。如果語句執(zhí)行期間發(fā)生錯誤,則控制權(quán)會轉(zhuǎn)到catch程序塊,該程序塊將錯誤拋給客戶端,以便進(jìn)行錯誤處理。Finally程序塊調(diào)用Close方法關(guān)閉同數(shù)據(jù)庫建立的連接。

(2)AddBooking和GetInformation方法的實現(xiàn)

AddBooking和GetInformation方法的實現(xiàn)同SearchTrain方法的實現(xiàn)基本上相同,也是將方法整體封裝在try…catch…finally塊中。

AddBooking方法的功能是向數(shù)據(jù)庫中添加訂票的詳細(xì)資料,其實現(xiàn)主要是利用TrainService數(shù)據(jù)庫中的AddBooking存儲過程。在實現(xiàn)該方法過程中,沒有使用sqlData Adapter對象,而是利用SqlCommand對象。該方法的執(zhí)行結(jié)果是將最新創(chuàng)建的訂票ID作為輸出參數(shù)返回。在返回時,利用以下函數(shù)將返回值強(qiáng)制轉(zhuǎn)換為整數(shù):

Int BookingID=Convert.Tolnt32(sqlCo mmand.Parameters[“@iBookingID”].Value);

GetInformation方法根據(jù)Information TypeID參數(shù)的值獲取有關(guān)的最近的新聞和旅行交易信息。如果參數(shù)是1,則該方法返回有關(guān)旅行交易的信息;如果參數(shù)是2,則該方法返回有關(guān)旅行新聞。該方法調(diào)用GetInformation存儲過程實現(xiàn)從數(shù)據(jù)庫中返回消息的詳細(xì)資料。

參考文獻(xiàn)

[1]柴曉路.基于Web服務(wù)架構(gòu)與開發(fā)互操作技術(shù)[M].北京:清華大學(xué)出版社.

[2]強(qiáng)寶華,潘家志等.從關(guān)系數(shù)據(jù)庫中生成XML數(shù)據(jù)源的研究[J].計算機(jī)科學(xué),2002,29(5).

[3]徐享忠,王精業(yè)等.基于XML的數(shù)據(jù)交換格式及其應(yīng)用[J].計算機(jī)工程與設(shè)計,2003(05).

[4]張長昊,夏安邦等.XML技術(shù)在信息交互中的應(yīng)用[J].山東工程學(xué)院學(xué)報,2002,16(3).

主站蜘蛛池模板: 中文字幕不卡免费高清视频| 亚洲成a人片在线观看88| 色婷婷国产精品视频| 久久精品国产999大香线焦| 香蕉国产精品视频| 99re经典视频在线| 欧美一级视频免费| 国产视频 第一页| 999精品免费视频| 亚洲欧美一区二区三区图片| 亚洲人成日本在线观看| 日本一区中文字幕最新在线| 国产乱人乱偷精品视频a人人澡| 麻豆国产精品一二三在线观看| 国产网站一区二区三区| 日韩第一页在线| 自拍偷拍欧美日韩| 中文一级毛片| 国产无套粉嫩白浆| 欧美不卡二区| 中文字幕色在线| 欧美专区在线观看| 在线免费看片a| 国产区91| 永久免费精品视频| 国产日韩精品欧美一区喷| 精品福利国产| 亚洲精品在线观看91| 亚洲欧美激情小说另类| 亚洲欧美一级一级a| 亚洲欧美激情小说另类| 99热这里只有免费国产精品| 伊人中文网| 亚洲欧美成人综合| 国产精品永久久久久| 夜夜操狠狠操| 91精品综合| 欧美激情二区三区| 国产原创演绎剧情有字幕的| 国产精品2| 久久久久久国产精品mv| 免费福利视频网站| 91免费国产高清观看| 99热国产这里只有精品无卡顿"| 一边摸一边做爽的视频17国产| 国产成人精品亚洲77美色| 操操操综合网| 波多野结衣无码中文字幕在线观看一区二区 | 无码日韩视频| 亚洲欧洲一区二区三区| 久久综合激情网| 男人天堂亚洲天堂| 九九久久99精品| 国产成人区在线观看视频| 中文字幕乱码中文乱码51精品| 美女扒开下面流白浆在线试听| 香蕉网久久| 青青草原国产一区二区| 波多野结衣的av一区二区三区| 欧美亚洲国产一区| 91精品情国产情侣高潮对白蜜| 日本亚洲欧美在线| 无码内射在线| 亚洲视频无码| 456亚洲人成高清在线| 欧美一区国产| 男女性色大片免费网站| 亚洲欧美自拍一区| 国产免费羞羞视频| 天堂在线视频精品| 国产一级片网址| 91青草视频| 亚洲一区二区在线无码| 色播五月婷婷| 中国国产一级毛片| 精品三级网站| 国产精品粉嫩| 国产一区二区精品高清在线观看| 欧美性猛交一区二区三区| 国产精品专区第1页| 中文一区二区视频| 亚洲最黄视频|