ASP.NET基于Web的招投標(biāo)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(源代碼+論文),ASP,NET,基于,Web,投標(biāo),系統(tǒng),設(shè)計(jì),實(shí)現(xiàn),源代碼,論文
分類號(hào):TP311.1 U D C:D10621-408-(2007)5950-0
密 級(jí):公 開 編 號(hào):2003032183
成都信息工程學(xué)院
學(xué)位論文
基于Web的招投標(biāo)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
論文作者姓名:
趙遠(yuǎn)強(qiáng)
申請(qǐng)學(xué)位專業(yè):
網(wǎng)絡(luò)工程
申請(qǐng)學(xué)位類別:
工學(xué)學(xué)士
指導(dǎo)教師姓名(職稱):
蔣毅(講師)
論文提交日期:
2007年6月 1日
基于Web的招投標(biāo)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
摘 要
招標(biāo)拍賣的歷史悠久,在近兩千年的發(fā)展歷程中,人們對(duì)拍賣的理論和技術(shù)做了大量的探討。隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展和日益成熟,為了提高招投標(biāo)及采購工作的效率,為廉政建設(shè)和防止腐敗提供技術(shù)保障,傳統(tǒng)的拍賣招標(biāo)向網(wǎng)上招投標(biāo)過渡, 基于Web的招投標(biāo)技術(shù)將成為今后招投標(biāo)發(fā)展的方向。
本文對(duì)招投標(biāo)國內(nèi)外研究現(xiàn)狀進(jìn)行分析;闡述了ASP.Net技術(shù),SQL數(shù)據(jù)庫技術(shù),以及B/S結(jié)構(gòu);并對(duì)招投標(biāo)系統(tǒng)總體流程,系統(tǒng)的功能,招投標(biāo)系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì)進(jìn)行了相關(guān)的描述。采用ASP.Net運(yùn)作方式和SQL2000的新技術(shù)和新工具,基于Web方式的招投標(biāo)系統(tǒng)設(shè)計(jì)方法,構(gòu)建了以B/S為結(jié)構(gòu)的招投標(biāo)系統(tǒng)。
關(guān)鍵詞:招投標(biāo);數(shù)據(jù)庫;B/S;ASP.Net
The Design and Implementation of Bidding and Tendering System Based on Web
Abstract
The history of tender and auction is glorious. In nearly 2000 years of development,the people have made the massive discussions to the auction theory and technology. With the development of computer network technology, to improve work efficiency of public bidding and provide guarantee for preventing corruption and clean government, traditional online auction tender to the tender transition. So bidding and tendering technology based on Web become the development direction of information systems.
This paper analyses the current situation and development trend of bidding and tendering technology.?An explanation of ASP.Net, SQL database technology, B/S structure was introduced. The general flowchart of the system designing plan and describes the system functions are described. In this paper, the design concept of setting up bidding and tendering system based on Web is presented and attempted by adopting new technology and tools based on ASP.Net and SQL2000, the system architecture of Bidding and Tendering system based on B/S structure is constructed
Key words: Bid and Tender; Database; B/S;ASP.Net
目 錄
論文總頁數(shù):23頁
1 引言 1
2 系統(tǒng)概述 1
2.1國內(nèi)外招投標(biāo)的發(fā)展?fàn)顩r 1
2.2 招投標(biāo)過程的概述 2
3 系統(tǒng)開發(fā)相關(guān)技術(shù) 2
3.1 系統(tǒng)開發(fā)ASP.NET 1.1技術(shù) 2
3.1.1 .NET的組成 2
3.1.2 .NET技術(shù) 2
3.2 SQL數(shù)據(jù)庫技術(shù) 3
3.3 B/S技術(shù) 3
4 系統(tǒng)總體分析 3
4.1 系統(tǒng)總體功能模塊 3
4.2 用戶注冊(cè)模塊 4
4.3 標(biāo)書下載模塊 5
4.4 項(xiàng)目信息發(fā)布模塊 5
4.5項(xiàng)目競(jìng)標(biāo)模塊 6
5 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)與實(shí)現(xiàn) 7
5.1 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì) 7
5.2 數(shù)據(jù)表的創(chuàng)建 7
5.3 創(chuàng)建表的腳本文件 10
5.4 存儲(chǔ)過程 10
6 系統(tǒng)總體實(shí)現(xiàn) 11
6.1 Web.Config文件 11
6.2 系統(tǒng)首頁面 12
6.3用戶注冊(cè)和登錄頁面的實(shí)現(xiàn) 12
6.4招競(jìng)標(biāo)頁面 18
結(jié) 論 21
參考文獻(xiàn) 21
致 謝 22
聲 明 23
1 引言
隨著網(wǎng)絡(luò)的推廣與網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,電子商務(wù)已經(jīng)被越來越多的人所接受,在某些方面之處利用網(wǎng)絡(luò)的方便甚至已經(jīng)取代了傳統(tǒng)的商店。充當(dāng)了買主和賣主之間的零售商。用非常小的開銷,人們就可以用電子方式進(jìn)行招標(biāo)項(xiàng)目或者競(jìng)標(biāo)項(xiàng)目,通過虛擬的網(wǎng)絡(luò)方式將買主和賣主聯(lián)系起來。本系統(tǒng)將設(shè)計(jì)一個(gè)有關(guān)買賣雙方之間商業(yè)行為的網(wǎng)上競(jìng)標(biāo)系統(tǒng)。賣方可以在該系統(tǒng)中發(fā)布自己的廣告,同時(shí)給出自己所希望得到的最底價(jià)格,然后由買方出價(jià)競(jìng)標(biāo),最后到截止日期時(shí)出價(jià)最高者獲得項(xiàng)目。
本系統(tǒng)以保證招投標(biāo)活動(dòng)的公平、公正和公開的原則,采用競(jìng)爭(zhēng)的手段實(shí)現(xiàn)大宗貨物和服務(wù)的采購最優(yōu)化的方式。
本文闡述的就是在B/S模式下的Web應(yīng)用程序,運(yùn)用Visual Studio.NET和SQL Server 2000等開發(fā)工具來設(shè)計(jì)和實(shí)現(xiàn)--完成招投標(biāo)的過程,其中招標(biāo)功能模塊主要是實(shí)現(xiàn)會(huì)員資格審核,用戶招投標(biāo)委托管理,發(fā)布招標(biāo)公告,發(fā)布中標(biāo)信息,澄清、修改項(xiàng)目信息,以及添加項(xiàng)目和下載標(biāo)書。投標(biāo)功能模塊主要是實(shí)現(xiàn)投標(biāo)文件的接收和管理。該系統(tǒng)作為買方和賣方的一個(gè)媒介,一方面由買方出價(jià)購買,一方面由賣方發(fā)布物品信息,由一段時(shí)間內(nèi)的價(jià)高者獲得此項(xiàng)目,最后由買賣雙方進(jìn)行確認(rèn),最終完成買方和賣方之間的成功交易?! ?
2 系統(tǒng)概述
2.1國內(nèi)外招投標(biāo)的發(fā)展?fàn)顩r
招標(biāo)拍賣作為一種常見的價(jià)格決定與資源分配機(jī)制己經(jīng)存在了幾千年,大約公元前500年,古巴比倫人就采用拍賣方式出售妻子;公元193年,羅馬皇帝的皇冠被拍賣掉了,如今,通過拍賣進(jìn)行的交易數(shù)額巨大,交易所涉及的行業(yè)眾多。許多國家政府采用拍賣方式出售國家債券、外匯、各種開采和開發(fā)(如油田的開采權(quán),土地的開發(fā)權(quán));許多大型項(xiàng)目合同也是通過招標(biāo)的方式來實(shí)現(xiàn)的。
隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,招投標(biāo)由原來手工操作方式逐步轉(zhuǎn)變到Internet網(wǎng)上進(jìn)行的方式,網(wǎng)上招投標(biāo)系統(tǒng)是指招投標(biāo)過程中各個(gè)角色,如供應(yīng)商、招標(biāo)機(jī)構(gòu)等連接起來,企業(yè)、機(jī)關(guān)和個(gè)人網(wǎng)上傳遞投標(biāo)數(shù)據(jù),評(píng)標(biāo)、開標(biāo)均采用電子手段,通過網(wǎng)絡(luò)發(fā)布中標(biāo)結(jié)果的一種投標(biāo)方式。網(wǎng)上招標(biāo)將傳統(tǒng)的招投標(biāo)過程轉(zhuǎn)變?yōu)橐粋€(gè)簡(jiǎn)單、方便、快捷的過程,并通過網(wǎng)絡(luò)將招投標(biāo)信息傳送到各企業(yè)。目前,網(wǎng)上招標(biāo)采購越來越常見,各種各樣的在線招標(biāo)拍賣網(wǎng)站開始興起,如被人們熟知的Ebay.com, On sale.com、中國的雅寶(Yabuy.com ) ,酷必得(CoolBid.com)等都是拍賣網(wǎng)站,另外,作為商品消費(fèi)的大戶一政府也開始進(jìn)行網(wǎng)上招標(biāo)采購,相關(guān)的各級(jí)招投標(biāo)網(wǎng)站也累見不鮮。
2.2 招投標(biāo)過程的概述
在招投標(biāo)過程中招標(biāo)過程主要是負(fù)責(zé)會(huì)員資質(zhì)審核,用戶招標(biāo)信息委托管理,招標(biāo)文件形成,以及招標(biāo)文件的管理。發(fā)布招標(biāo)公告,發(fā)布招標(biāo)邀請(qǐng)函?,發(fā)布中標(biāo)信息?,澄清、修改招標(biāo)書,在線下載標(biāo)書。并針對(duì)投標(biāo)信息管理所需要的更新修改,提供相應(yīng)的機(jī)制。
投標(biāo)過程主要是進(jìn)行投標(biāo)管理和投標(biāo)后的銷毀管理,能夠異步和同步參與投標(biāo)并公開投標(biāo)結(jié)果,并以保存。當(dāng)投標(biāo)結(jié)束后,根據(jù)一定的機(jī)制注銷投標(biāo)。
因此從總體來看,目前世界各國和有關(guān)國際組織的有關(guān)采購法律、規(guī)則都規(guī)定了公開招標(biāo)、邀請(qǐng)招標(biāo)、議標(biāo)等三種招標(biāo)投標(biāo)方式。
3 系統(tǒng)開發(fā)相關(guān)技術(shù)
3.1 系統(tǒng)開發(fā)ASP.NET 1.1技術(shù)
ASP.NET 1.1(Active Serever Page.NET 1.1)是微軟公司推出的Web開發(fā)平臺(tái)。是在Internet環(huán)境中連接各種信息,系統(tǒng)與設(shè)備的軟件架構(gòu)。.NET系列服務(wù)軟件最終目標(biāo)是形成Internet的操作系統(tǒng),進(jìn)而控制其他基于次平臺(tái)上的服務(wù)應(yīng)用軟件。從而,企業(yè)和客戶都能從微軟或他的盟友中獲得任何有價(jià)值的基于Internet的服務(wù)。在ASP.NET運(yùn)行時(shí),公共語言運(yùn)行(CLR)是整個(gè).NET框架賴以存在的基礎(chǔ),它為Microsfot .NET應(yīng)用程序提供了一個(gè)托管的代碼執(zhí)行環(huán)境。它實(shí)際上是駐留在內(nèi)存里的一段代理代碼,主要負(fù)責(zé)應(yīng)用程序在整個(gè)執(zhí)行期間的代碼管理工作,比較典型的有內(nèi)存管理、線程管理、安全管理、遠(yuǎn)程管理、即時(shí)編譯和代碼強(qiáng)制安全類型檢查等。
3.1.1 .NET的組成
.NET主要由3個(gè)部分組成,下面分別對(duì)這3個(gè)部分進(jìn)行簡(jiǎn)單的介紹。
(1) .NET戰(zhàn)略,.NET戰(zhàn)略基于這樣一種想法,即所有的設(shè)備在將來都會(huì)通過Internet連接在一起,而.NET就會(huì)為Internet網(wǎng)絡(luò)上提供的一種服務(wù)。
(2) .NET Framework,.NET Framework為ASP.NET提供了具體的服務(wù)和技術(shù),方便了開發(fā)人員對(duì)應(yīng)用程序的開發(fā),同樣也滿足了已經(jīng)連接到Internet上用戶的需要。
(3) Windows服務(wù)器系統(tǒng),Windows服務(wù)器系統(tǒng)是指像SQL Server 2000 等數(shù)據(jù)庫一樣,由.NET Framework應(yīng)用程序使用的服務(wù)器產(chǎn)品。
3.1.2 .NET技術(shù)
(1) .NET Framework為 Microsoft 公司建立 .NET戰(zhàn)略提供了基礎(chǔ)。所有設(shè)備都將在標(biāo)準(zhǔn)化或共享協(xié)議的基礎(chǔ)賞識(shí)用類似XML這樣的公共語言,在不同的操作系統(tǒng)和設(shè)備上執(zhí)行眾多軟件。
(2) .NET Framework提供了各種基礎(chǔ)服務(wù),而這些服務(wù)在Microsoft公司看來是實(shí)現(xiàn)其.NET戰(zhàn)略的基本所在。要使網(wǎng)絡(luò)上的兩端交換數(shù)據(jù)庫和連網(wǎng)工作更加容易,最好有一個(gè)全球網(wǎng)絡(luò)和類似XML這樣的開發(fā)標(biāo)準(zhǔn)。
3.2 SQL數(shù)據(jù)庫技術(shù)
隨著數(shù)據(jù)庫技術(shù)的不斷完善,用戶數(shù)據(jù)的不斷積累,用戶的需求也不斷提高,在此之上,更高級(jí)的應(yīng)用應(yīng)運(yùn)而生,這包括已經(jīng)成熟的數(shù)據(jù)倉庫應(yīng)用、廣為接受的商業(yè)智能(BI)應(yīng)用、以及方興未艾的SOA等。當(dāng)數(shù)據(jù)庫能夠容納幾乎所有數(shù)據(jù)之后,我們必然面臨的一個(gè)問題是如何快速獲得我們需要的數(shù)據(jù)。
當(dāng)用戶訪問數(shù)據(jù)庫時(shí),怎樣減少用戶的等待,快速返回用戶需要的數(shù)據(jù)是所有數(shù)據(jù)庫都需要解決的問題。這也就需要另外一項(xiàng)高級(jí)增強(qiáng)--面向搜索的增強(qiáng),從某種意義上說面向需求的增強(qiáng)-數(shù)據(jù)分析和挖掘也正是這個(gè)方向上的高級(jí)應(yīng)用之一。目前各數(shù)據(jù)庫在這一方面都不夠完善,我們相信在未來,數(shù)據(jù)庫能夠容納和存儲(chǔ)各種數(shù)據(jù)之后,必然向快速搜索和查詢方面進(jìn)行增強(qiáng)。
3.3 B/S技術(shù)
B/S(Browser/Server)結(jié)構(gòu)即瀏覽器和服務(wù)器結(jié)構(gòu)。它是隨著 Internet技術(shù)的興起,對(duì)C/S結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶工作界面是通過WWW瀏覽器來實(shí)現(xiàn),極少部分事務(wù)邏輯在前端 (Browser)實(shí)現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端(Server)實(shí)現(xiàn),形成所謂三層3-tier結(jié)構(gòu)。這樣就大大簡(jiǎn)化了客戶端電腦載荷,減輕了系統(tǒng)維護(hù)與升級(jí)的成本和工作量,降低了用戶的總體成本(TCO)。
以目前的技術(shù)看,局域網(wǎng)建立的B/S結(jié)構(gòu)網(wǎng)絡(luò)應(yīng)用,通過Internet/Intranet模式下數(shù)據(jù)庫應(yīng)用,相對(duì)易于把握、成本也是較低的。它是一次性到位的開發(fā),能實(shí)現(xiàn)不同的人員,從不同的地點(diǎn),以不同的接入方式來訪問和操作共同的數(shù)據(jù)庫;它能有效地保護(hù)數(shù)據(jù)平臺(tái)和管理訪問權(quán)限,服務(wù)器數(shù)據(jù)庫也很安全。特別是在JAVA這樣的跨平臺(tái)語言出現(xiàn)之后,B/S架構(gòu)管理軟件更是方便、快捷、高效。
4 系統(tǒng)總體分析
4.1 系統(tǒng)總體功能模塊
網(wǎng)上招投標(biāo)系統(tǒng)要實(shí)現(xiàn)的主要功能是:用戶注冊(cè),項(xiàng)目招標(biāo)信息發(fā)布,招標(biāo)信息查詢,項(xiàng)目投標(biāo)單位查看,項(xiàng)目競(jìng)標(biāo)。在系統(tǒng)中,非注冊(cè)用戶可以瀏覽競(jìng)拍中的項(xiàng)目,但不可以參與項(xiàng)目拍賣和競(jìng)拍活動(dòng)。當(dāng)注冊(cè)為本系統(tǒng)的會(huì)員后,可以實(shí)現(xiàn)招標(biāo)和競(jìng)標(biāo)等相關(guān)操作。下面是系統(tǒng)的總體功能模塊如圖4-1所示。
網(wǎng)上招投標(biāo)系統(tǒng)
項(xiàng)目競(jìng)標(biāo)模塊
用戶注冊(cè)模塊
項(xiàng)目信息發(fā)布模塊
標(biāo)書下載模塊
下載標(biāo)書
登
錄
注
冊(cè)
參與競(jìng)標(biāo)
瀏覽項(xiàng)目
更新項(xiàng)目
添加其它
添加項(xiàng)目
圖4-1 系統(tǒng)總體功能結(jié)構(gòu)
在頁面瀏覽器中第一次進(jìn)入該系統(tǒng),所看到的是默認(rèn)的首頁,在該頁面中主要包括一個(gè)系統(tǒng)功能簡(jiǎn)介和登錄、注冊(cè)等的鏈接。如果用戶還沒有自己的帳號(hào),需要首先進(jìn)行注冊(cè),單擊首頁中相應(yīng)的鏈接,進(jìn)入注冊(cè)頁面。用戶正確填寫注冊(cè)信息后,系統(tǒng)將頁面自動(dòng)跳轉(zhuǎn)到主頁面,標(biāo)記用戶已經(jīng)登錄。對(duì)于已經(jīng)注冊(cè)過的用戶,可以單擊系統(tǒng)首頁中的“登錄”鏈接,進(jìn)入登錄界面,此時(shí)用戶使用正確的帳號(hào)和密碼登錄系統(tǒng)后,頁面將自動(dòng)跳轉(zhuǎn)到登錄用戶的歡迎界面。該頁面對(duì)登錄用戶顯示歡迎信息,并提供了一個(gè)簡(jiǎn)單的可供選擇的菜單,通過該菜單,用戶可以使用系統(tǒng)所提供的各種功能。本系統(tǒng)最主要的功能是招標(biāo)與競(jìng)標(biāo),對(duì)于某些曾經(jīng)有過交易記錄的用戶,該頁面同時(shí)還會(huì)顯示出用戶在以前訪問站點(diǎn)過程中為哪些項(xiàng)目競(jìng)過價(jià)。若用戶單擊該列表中的某個(gè)項(xiàng)目時(shí),系統(tǒng)會(huì)彈出是否確認(rèn)交易,如果用戶確認(rèn),那么就可以完成該項(xiàng)目的交易了。
4.2 用戶注冊(cè)模塊
用戶注冊(cè)流程,當(dāng)用戶還沒有成為本系統(tǒng)的會(huì)員時(shí)。如果需要成為會(huì)員,那么就需要注冊(cè)為本系統(tǒng)的會(huì)員,才能進(jìn)行相關(guān)的服務(wù)操作。如圖4-2所示,此模塊提供了用戶信息的錄入功能,首先在將用戶注冊(cè)信息添加到數(shù)據(jù)庫的應(yīng)用中時(shí),調(diào)用了存儲(chǔ)過程。實(shí)現(xiàn)了用戶注冊(cè)的功能。
開始
錄入用戶信息
數(shù)據(jù)是否完整
否
是
調(diào)用存儲(chǔ)過程
實(shí)現(xiàn)用戶信息添加
結(jié)束
圖4-2 用戶注冊(cè)模塊流程
4.3 標(biāo)書下載模塊
用戶在注冊(cè)為會(huì)員后,通過使用正確的帳號(hào)和密碼即可登錄系統(tǒng)。但是沒有注冊(cè)會(huì)員的用戶只能瀏覽項(xiàng)目列表,但不能進(jìn)行任何相關(guān)的操作。此時(shí)用戶通過注冊(cè)鏈接,單擊注冊(cè)進(jìn)行注冊(cè)為會(huì)員。此時(shí)用戶就可以通過上述的兩種方式進(jìn)入系統(tǒng),通過瀏覽項(xiàng)目列表后,若想采購某種項(xiàng)目,那么就需要下載標(biāo)書了,如圖4-3所示。
開始
成為會(huì)員后
系統(tǒng)主頁
標(biāo)書下載
結(jié)束
圖4-3 標(biāo)書下載模塊流程
4.4 項(xiàng)目信息發(fā)布模塊
項(xiàng)目信息發(fā)布管理流程,如圖4-4所示。此模塊提供了項(xiàng)目信息的錄入,編輯等功能。若想發(fā)布項(xiàng)目信息,首要條件是用戶已經(jīng)成為系統(tǒng)會(huì)員,然后可以添加要競(jìng)拍的項(xiàng)目,并編輯以添加項(xiàng)目的信息。
開始
添加項(xiàng)目編號(hào)
添加其它信息
保存
結(jié)束
圖4-4 項(xiàng)目信息發(fā)布模塊流程
4.5項(xiàng)目競(jìng)標(biāo)模塊
項(xiàng)目競(jìng)標(biāo)模塊的流程,如圖4-5所示。此模塊提供了用戶從競(jìng)標(biāo)項(xiàng)目列表到交易完成的全部功能。競(jìng)標(biāo)結(jié)束時(shí),會(huì)判斷誰為出價(jià)最高的用戶,此用戶為競(jìng)拍此項(xiàng)目的成功者。競(jìng)拍成功的用戶將會(huì)聯(lián)系賣方,進(jìn)行項(xiàng)目的交易。
開始
查詢到競(jìng)標(biāo)的項(xiàng)目
瀏覽項(xiàng)目詳細(xì)信息
是否最高出價(jià)人
競(jìng)標(biāo)失敗
是 否
競(jìng)標(biāo)成功
結(jié)束
聯(lián)系賣方項(xiàng)目交易
結(jié)束
圖4-5 項(xiàng)目競(jìng)標(biāo)模塊的流程
5 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)與實(shí)現(xiàn)
5.1 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)
圖5-1 設(shè)計(jì)關(guān)系模型
5.2 數(shù)據(jù)表的創(chuàng)建
在該系統(tǒng)中,作為買方和賣方的一個(gè)媒介,一方面由賣方發(fā)布項(xiàng)目的信息,另一方面由買方出價(jià)購買,由一段時(shí)間內(nèi)的價(jià)高者獲得此項(xiàng)目,最后買賣雙方進(jìn)行確認(rèn),完成網(wǎng)絡(luò)銷售的過程。因此該系統(tǒng)要滿足以下的數(shù)據(jù)庫需求分析:
招標(biāo)投標(biāo)系統(tǒng)需要提供信息的查詢,保存,更新以及刪除等功能,這就要求數(shù)據(jù)庫能充分滿足各種信息的輸入和輸出,通過上述系統(tǒng)功能的分析,根據(jù)招標(biāo)投標(biāo)系統(tǒng)的需求,總結(jié)如下的需求信息:
(1)用戶需要注冊(cè)才能進(jìn)行招標(biāo)投標(biāo)等一系列的相關(guān)操作。
(2)在項(xiàng)目中,包括待招和已交易的項(xiàng)目信息。
(3)在投標(biāo)中需要包含對(duì)每個(gè)項(xiàng)目的出價(jià)的信息。
(4)包含每個(gè)已被出價(jià)的項(xiàng)目和出價(jià)者的ID號(hào)。
(5)另外還需要包含用戶招標(biāo)的項(xiàng)目信息。
所以在該系統(tǒng)中共需要?jiǎng)?chuàng)建5個(gè)數(shù)據(jù)表,用于存放網(wǎng)絡(luò)招投標(biāo)管理系統(tǒng)所需要的數(shù)據(jù)。
在數(shù)據(jù)庫模型中不僅列出了各個(gè)表中的所有字段,同時(shí)也標(biāo)出了各表的主鍵和外鍵等重要的信息,如果仔細(xì)閱讀前面關(guān)于系統(tǒng)功能分析及系統(tǒng)流程的介紹之后,一定可以很好地理解這些數(shù)據(jù)表中各字段所代表的含義,同時(shí)也應(yīng)該思考為何各表時(shí)間的關(guān)系。
下表5-1至5-6是每個(gè)數(shù)據(jù)表的簡(jiǎn)要描述,以及它們與數(shù)據(jù)庫中其他表關(guān)系的說明。在解決方案中依次具體的思考了每個(gè)表中字段的數(shù)據(jù)類型、鍵和null值等內(nèi)容。下面是系統(tǒng)數(shù)據(jù)表5-1至5-6的簡(jiǎn)要描述。
表5-1 系統(tǒng)數(shù)據(jù)表的簡(jiǎn)要描述
表
描述
Person
包含系統(tǒng)中所有注冊(cè)用戶的資料
Item
包含待售或以售項(xiàng)目的信息
Bid
包含每個(gè)Item出價(jià)的信息
Sale
包含每項(xiàng)銷售的信息,包括被出價(jià)的項(xiàng)目和出價(jià)者Id
Seller
包含Person出售的項(xiàng)目信息
表5-2 用戶信息表(Person)
字段名
數(shù)據(jù)類型
長(zhǎng)度
允許為空
是否為主鍵
說明
PersonID
bigint
8
否
是
唯一標(biāo)識(shí)
FamilyName
varchar
255
否
登錄名
GivenName
varchar
255
否
真實(shí)名
EmailAddress
varchar
255
否
郵箱地址
Password
varchar
255
否
密碼
StreetAddress1
varchar
255
否
單位地址
StreetAddress2
varchar
255
是
地址
City
varchar
255
是
城市
State
varchar
255
是
狀態(tài)
PostalCode
varchar
10
是
郵政編碼
Country
varchar
255
是
所屬國家
Active
char
1
是
行為
LastLogin
datetime
8
是
最后登錄時(shí)間
表5-3 Seller表
字段名
數(shù)據(jù)類型
長(zhǎng)度
是否允許為空
是否為主鍵
說明
ID
bigint
8
是
唯一標(biāo)識(shí)
PersonID
bigint
8
用戶ID
ItemsListed
int
4
所列項(xiàng)目
ItemsActive
int
4
活躍項(xiàng)目
LastActivity
datetime
8
最后一項(xiàng)活動(dòng)
表5-4 Item表
字段名
數(shù)據(jù)類型
長(zhǎng)度
是否允許為空
是否為主鍵
說明
ItemID
bigint
8
是
唯一標(biāo)識(shí)
ItemName
varchar
500
項(xiàng)目名稱
Description
varchar
1000
是
項(xiàng)目描述
AskingPrice
money
8
要求價(jià)格
NotifyPrice
money
8
是
通報(bào)價(jià)格
SellerID
bigint
8
賣方ID
ListingDate
datetime
8
上部時(shí)間
ExpirationDate
datetime
8
到期
ItemStatus
varchar
10
狀態(tài)
表5-5 Bid表
字段名
數(shù)據(jù)類型
長(zhǎng)度
是否允許為空
是否為主鍵
說明
BidID
bigint
8
是
唯一標(biāo)識(shí)
ItemID
bigint
8
項(xiàng)目ID
BidderID
bigint
8
投標(biāo)者ID
Timestamp
datetime
8
時(shí)間戳
BidAmount
money
8
投標(biāo)金額
BidChange
money
8
變更
表5-6 sale表
字段名
數(shù)據(jù)類型
長(zhǎng)度
是否允許為空
是否為主鍵
說明
SaleID
bigint
8
是
唯一標(biāo)識(shí)
ItemID
bigint
8
項(xiàng)目ID
WinningBid
money
8
中標(biāo)
BuyerID
bigint
8
買家ID
sellerApproval
char
1
賣方審批
BuyerAcceptance
char
1
買方驗(yàn)收
Completiondate
Datetime
8
竣工日期
5.3 創(chuàng)建表的腳本文件
數(shù)據(jù)表在創(chuàng)建完畢后,前面已經(jīng)介紹了所有表數(shù)據(jù)表的結(jié)構(gòu)、內(nèi)容及各表之間的關(guān)系,還要生成SQL腳本文件。這里選擇的是使用可視化工具還是使用SQL Server腳本文件在查詢分析器中直接運(yùn)行來創(chuàng)建一個(gè)表的腳本文件。
5.4 存儲(chǔ)過程
為了遵循好的設(shè)計(jì)原則,可以使用良種方法對(duì)這些表進(jìn)行訪問。如創(chuàng)建一組存儲(chǔ)過程,存儲(chǔ)過程是Web應(yīng)用程序后臺(tái)數(shù)據(jù)存儲(chǔ)的組成部分。應(yīng)用程序與存儲(chǔ)過程通信,而存儲(chǔ)過程則與表通信。這意味著如果經(jīng)常需要改變表的內(nèi)容,就必須確保存儲(chǔ)過程以同樣的方式工作,這樣才能確保應(yīng)用程序繼續(xù)工作。而且使用存儲(chǔ)過程訪問表比直接訪問更快。
本系統(tǒng)的存儲(chǔ)過程比較多,前面已經(jīng)詳細(xì)介紹各個(gè)存儲(chǔ)過程的功能,下面將本系統(tǒng)的整個(gè)存儲(chǔ)過程做簡(jiǎn)要的描述,如下表5-7所示。
表5-7 存儲(chǔ)過程表
存 儲(chǔ) 過 程
描 述
sp_bid_isp
添加一條用戶的競(jìng)價(jià)
sp_Get_Bid_Details
獲取某件項(xiàng)目所有競(jìng)價(jià)的詳細(xì)信息
sp_item_dsp
刪除某件項(xiàng)目
sp_get_highest_bid
獲取某件項(xiàng)目的最高競(jìng)價(jià)
sp_item_isp
添加一件項(xiàng)目
sp_item_sel
返回某用戶的項(xiàng)目
sp_item_usp
更新某件項(xiàng)目信息
sp_items_for_sale
返回所有可以競(jìng)價(jià)的項(xiàng)目
sp_login
處理用戶登錄事件
sp_my_winning_bids
返回某用戶當(dāng)前競(jìng)標(biāo)于領(lǐng)先地位的所有項(xiàng)目
sp_person_isp
添加一個(gè)用戶信息
sp_person_sel
通過用戶名即郵件地址來查詢一個(gè)用戶
sp_person_sel_by_id
查詢某條競(jìng)標(biāo)信息的競(jìng)標(biāo)者信息
sp_person_usp
更新用戶信息
sp_sale_complete
完成某個(gè)項(xiàng)目的交易
sp_sale_isp
為某個(gè)項(xiàng)目增加一次成功的交易記錄
6 系統(tǒng)總體實(shí)現(xiàn)
本系統(tǒng)使用Pagelet控件技術(shù)編寫了Header.ascx和Footer.ascx兩個(gè)用戶控件。其中Header.ascx控件用來顯示系統(tǒng)標(biāo)題,F(xiàn)ooter.ascx控件用來顯示系統(tǒng)的版本和版權(quán)信息。
本系統(tǒng)還主要提供了那些與項(xiàng)目基本信息相關(guān)的數(shù)據(jù)庫操作方法,在項(xiàng)目類中首先為了用戶參與招標(biāo)投標(biāo),其中主要的部分是為某個(gè)項(xiàng)目添加一個(gè)招競(jìng)信息,在添加項(xiàng)目的時(shí)候通過對(duì)項(xiàng)目發(fā)布,項(xiàng)目信息的說明,以及對(duì)項(xiàng)目信息的修改,刪除,更新等操作來實(shí)現(xiàn)了用戶在本系統(tǒng)中的招標(biāo)功能,其功能的實(shí)現(xiàn)主要是在數(shù)據(jù)庫中對(duì)相關(guān)的數(shù)據(jù)與信息進(jìn)行修改,刪除,更新等,即實(shí)現(xiàn)發(fā)布招標(biāo)信息使用戶參與招標(biāo)。
此外,當(dāng)用戶登錄本系統(tǒng)后,可以對(duì)一系列項(xiàng)目進(jìn)行瀏覽,當(dāng)用戶欲求購項(xiàng)目時(shí),那么就需要參與競(jìng)標(biāo),在參與競(jìng)標(biāo)之前需要對(duì)標(biāo)書進(jìn)行下載等工作。其頁面顯示了一個(gè)表,該表對(duì)每個(gè)當(dāng)前招競(jìng)標(biāo)的項(xiàng)目作了簡(jiǎn)單的說明。注冊(cè)用戶可以選擇某個(gè)特定的待招項(xiàng)目,單擊后到達(dá)BidItem.aspx頁面查看別人的競(jìng)價(jià)或者自己欲對(duì)該項(xiàng)目出價(jià),其功能的實(shí)現(xiàn)主要是對(duì)一個(gè)項(xiàng)目出價(jià),出價(jià)后利用數(shù)據(jù)綁定將出價(jià)信息寫入數(shù)據(jù)庫,在數(shù)據(jù)庫中通過對(duì)出價(jià)信息進(jìn)行比較,將出價(jià)最高的用戶判定為競(jìng)標(biāo)獲勝者,再從數(shù)據(jù)庫中將數(shù)據(jù)讀取出來并將用戶參與競(jìng)標(biāo)的項(xiàng)目發(fā)布在系統(tǒng)的主頁面上,同時(shí)還公布出參與競(jìng)標(biāo)的用戶的詳細(xì)信息。
6.1 Web.Config文件
主要介紹Web.Config文件為了避免頁面重復(fù)連接數(shù)據(jù)庫操作的設(shè)置。
6.2 系統(tǒng)首頁面
該頁面為系統(tǒng)首頁(圖6-1系統(tǒng)首頁),提供了登錄、注冊(cè)和瀏覽列表的鏈接。該頁面非常簡(jiǎn)單,如果用戶已經(jīng)是系統(tǒng)會(huì)員,那么只要輸入正確的用戶名和密碼就可以進(jìn)入改系統(tǒng)了。如果用戶不是會(huì)員,那么用戶只要按照要求填寫相關(guān)的信息就可以成功的注冊(cè)為本系統(tǒng)會(huì)員。在不是會(huì)員的情況下,用戶可以瀏覽本系統(tǒng)中正在招標(biāo)的相關(guān)信息,但是不能進(jìn)行任何相關(guān)的操作。
圖6-1 系統(tǒng)首頁
6.3用戶注冊(cè)和登錄頁面的實(shí)現(xiàn)
用戶注冊(cè)頁面主要調(diào)用Person類提供了用戶的詳細(xì)信息相關(guān)的各個(gè)屬性。這些屬性分別與數(shù)據(jù)表中的字段相對(duì)應(yīng)。在首頁面單擊“注冊(cè)”鏈接進(jìn)入該頁面,此頁面不僅可以讓用戶注冊(cè)添加個(gè)人用戶信息,同時(shí)它也是修改注冊(cè)信息的界面。在該頁面中使用了幾個(gè)Panel組件,通過設(shè)置它們的Visible屬性可以實(shí)現(xiàn)上面的操作。在寫入數(shù)據(jù)庫時(shí),首先調(diào)用了Tools類中的public static bool IsLoggedIn()方法來實(shí)現(xiàn)判定用戶是否已經(jīng)登錄,這樣才能進(jìn)行安全驗(yàn)證,確定用戶是否具有權(quán)限訪問某些頁面。如果沒有登錄需要注冊(cè),則添加用戶詳細(xì)信息,通過Customer方法和系統(tǒng)引用文件.dll向數(shù)據(jù)庫添加注冊(cè)信息。
下面是Person類設(shè)計(jì)方案方法的定義和描述。如下表6-2所示:
表6-2 Person類設(shè)計(jì)方案方法的定義和描述
方 法 名 稱
描 述
public string AddCustomer(string FamilyName,string GiveName,string EmailAddress,string Password,string Add1,string Add2,string City,string State,string Zip,string Country)
添加一個(gè)用戶信息
public PersonDetails GetPersonByID(Int32 intPersonID)
獲取某條競(jìng)標(biāo)信息的競(jìng)標(biāo)者信息
public PersonDetails GetPersonByID(string strEmail)
通過用戶名即郵件地址來查詢一個(gè)用戶
public PersonDetails Login(string strEmail,string strPassword)
處理用戶登錄事件
public string ModifyCustomer(string FamilyName,string GiveName,string EmailAddress,string Password,string Add1,string Add2,string City,string State,string Zip,string Country)
更新用戶信息
其頁面和幾個(gè)事件代碼如下圖6-2所示::
圖6-2 用戶注冊(cè)頁面
下面主要介紹的是注冊(cè)頁面中核心代碼部分,其代碼如下:
private string Process;
//判定是否為注冊(cè)用戶
private void Page_Load(object sender, System.EventArgs e)
{
if (Tools.IsLoggedIn())
{
Process = "MODIFY";
Bid.PersonDetails myPersonDetails =
new Bid.PersonDetails();
Bid.Person obj = new Bid.Person();
myPersonDetails=obj.GetPersonDetails
(Request.Cookies["email"].Value);
txtFamilyName.Text = myPersonDetails.FamilyName;
txtGivenName.Text = myPersonDetails.GivenName;
txtEmail.Text = Request.Cookies["email"].Value;
txtPwd.Text = myPersonDetails.Password;
txtAdd1.Text = myPersonDetails.StreetAddress1;
txtAdd2.Text = myPersonDetails.StreetAddress2;
txtCity.Text = myPersonDetails.City;
txtState.Text = myPersonDetails.State;
txtZip.Text = myPersonDetails.PostalCode;
txtCountry.Text = myPersonDetails.Country;
txtEmail.Enabled = false;
obj = null;
GuestMenu.Visible = false;
RegisteredMenu.Visible = true;
}
else
{
Process = "ADD";
GuestMenu.Visible = true;
RegisteredMenu.Visible = false;
}
}
//添加用戶信息
private void btnSubmit_Click(object sender, System.EventArgs e)
{
if (Page.IsValid)
{
Bid.Person obj = new Bid.Person();
string strStatus;
if (Process == "ADD")
{
strStatus = obj.AddCustomer(txtFamilyName.Text,
txtGivenName.Text,
txtEmail.Text,
txtPwd.Text,
txtAdd1.Text,
txtAdd2.Text,
txtCity.Text,
txtState.Text,
txtZip.Text,
txtCountry.Text);
try
{
Int32.Parse(strStatus);
Response.Cookies["GivenName"].Value= txtGivenName.Text;
Response.Cookies["email"].Value = txtEmail.Text;
Response.Cookies["PersonID"].Value = strStatus;
Response.Redirect("MenuForRegisteredUsers.aspx");
}
catch (FormatException ex)
{
lblMsg.Text = strStatus;
}
}
else
{
// 更新用戶信息
strStatus=obj.ModifyCustomer(txtFamilyName.Text,
txtGivenName.Text,
txtEmail.Text,
txtPwd.Text,
txtAdd1.Text,
txtAdd2.Text,
txtCity.Text,
txtState.Text,
txtZip.Text,
txtCountry.Text);
if (strStatus == "1")
{
Response.Cookies["GivenName"].Value=
Request.Form["txtGivenName"];
Response.Cookies["email"].Value=txtEmail.Text;
Response.Redirect("MenuForRegisteredUsers.aspx");
}
else if(strStatus.Length > 1)
{
lblMsg.Text = "Update Failed! " + strStatus;
}
}
}
}
}
}
用戶登錄頁面主要是為會(huì)員提供服務(wù),在用戶已經(jīng)成為會(huì)員時(shí),只要該用戶輸入正確的用戶名和密碼,就能進(jìn)入系統(tǒng),進(jìn)行一些相關(guān)的具體操作。因此,重點(diǎn)是按鈕的單擊事件響應(yīng)程序,其功能主要是通過判定用戶輸入的用戶名和密碼是否和曾經(jīng)注冊(cè)時(shí)寫入在數(shù)據(jù)庫中的數(shù)據(jù)是否相同,來實(shí)現(xiàn)的登錄功能。該頁面(圖6-3用戶登錄頁面)與代碼如下:
圖6-3 系統(tǒng)登錄頁面
private void btnSubmit_Click(object sender, System.EventArgs e)
{
if (Page.IsValid)
{
Bid.Person obj = new Bid.Person();
Bid.PersonDetails myPersonDetails =
new Bid.PersonDetails();
myPersonDetails =
obj.Login(txtEmail.Text, txtPwd.Text);
if (myPersonDetails.PersonID != 0)
{
Response.Cookies["email"].Value = txtEmail.Text;
Response.Cookies["GivenName"].Value =
myPersonDetails.GivenName;
Response.Cookies["PersonID"].Value =
myPersonDetails.PersonID.ToString();
Response.Redirect("MenuForRegisteredUsers.Aspx");
}
else
lblMsg.Text = "Login failed. Please try again.";
}
}
}
}
6.4招競(jìng)標(biāo)頁面
該頁面顯示了一個(gè)表,該表對(duì)每個(gè)當(dāng)前招競(jìng)標(biāo)的項(xiàng)目作了簡(jiǎn)單的說明。從該頁面中,注冊(cè)用戶可以選擇某個(gè)特定的待招項(xiàng)目,單擊后到達(dá)BidItem.aspx頁面查看別人的競(jìng)價(jià)或者自己為該項(xiàng)目出價(jià)。該頁面功能的實(shí)現(xiàn)主要是對(duì)一個(gè)項(xiàng)目出價(jià)后,利用數(shù)據(jù)綁定將出價(jià)信息寫入數(shù)據(jù)庫,通過都出價(jià)信息的比較,將出價(jià)最高的用戶判定為競(jìng)標(biāo)獲勝者,并發(fā)布出該用戶的信息。該頁面(圖6-4項(xiàng)目工程)如下:
圖6-4 項(xiàng)目工程
該頁面項(xiàng)目類的數(shù)據(jù)層設(shè)計(jì)的方法和Page_Load主要事件處理程序與頁面如下(圖6-4項(xiàng)目工程):
表6-2列出了Item數(shù)據(jù)層類的設(shè)計(jì)方案方法的定義和描述?! ?
表6-2 Item類設(shè)計(jì)方案方法的定義和描述
方 法 名 稱
描 述
public string AddBid(Int32 ItemID)
為某個(gè)項(xiàng)目增加一個(gè)競(jìng)標(biāo)信息
public string AddItem(string ItemName,string ItemDesc,Double ItemAsk,Double ItemNotify,Int32 ItemSellerID,DateTime ItemExpDate)
增加一個(gè)項(xiàng)目用于競(jìng)標(biāo)
public string AddSale(Int32 ItemID,Int32 BidID)
為某項(xiàng)目添加一次成功的交易記錄
public string CompleteSale(Int32 ItemID,Double WinningBid)
完成某件項(xiàng)目的交易
public string DeleteItem(Int32 ItemID)
刪除某件項(xiàng)目
public SqlDataReader GetBidDetails(Int32 intItemID)
獲取某件項(xiàng)目所有競(jìng)價(jià)的詳細(xì)信息
public string GetHighestBid(Int32 intItemID)
獲得某個(gè)項(xiàng)目的最高競(jìng)價(jià)
public SqlDataReader GetMyWinningBids(Int32 intPersonID)
返回某用戶當(dāng)前競(jìng)標(biāo)處于領(lǐng)先地位的所有項(xiàng)目
public string UpdateItem(string strItemID,string strItemName,string strItemDesc,string strAskPrice,string strNotifyPrice)
更新某件項(xiàng)目的信息
public SqlDataReader ViewItems(Int32 ingSellerID)
返回某用戶的項(xiàng)目
public SqlDataReader ViewItemsForSale()
返回所有可以競(jìng)價(jià)的項(xiàng)目
在介紹了該類的方法與頁面實(shí)現(xiàn)后,下面主要介紹的是該頁面中核心代碼部分,其代碼如下:
private void Page_Load(object sender, System.EventArgs e)
{
if (!Page.IsPostBack)
{
BindGrid();
//通過Tools類中的:public static bool IsLoggedIn()方法,并用該方法去判斷用戶是否已經(jīng)登錄。
if (Tools.IsLoggedIn())
{
lblUserName.Text = "Welcome" +
Request.Cookies["email"].Value +"";
GuestMenu.Visible = false;
RegisteredMenu.Visible = true;
}
else
{
lblUserName.Text = "Welcome guest";
GuestMenu.Visible = true;
RegisteredMenu.Visible = false;
}
}
}
private void BindGrid()//創(chuàng)建項(xiàng)目對(duì)象信息,添加一個(gè)招投標(biāo)信息。
{
Bid.Item objItemList = new Bid.Item();
myItems.DataSource = objItemList.ViewItemsForSale();
myItems.DataBind();
}
public string FormatUrl(Int32 intID, string strName, string strDesc)
{
if (Tools.IsLoggedIn())
return "BidItem.aspx?itemid=" + intID.ToString() +
"&itemname=" +
Server.UrlEncode(strName) + "&itemdesc=" +
Server.UrlEncode(strDesc);
else
return "";
}
}
}
以上只是本系統(tǒng)中類的實(shí)現(xiàn),以及涉及到的頁面及代碼的實(shí)現(xiàn),由于篇幅有限,因此就不一一多舉了。
結(jié) 論
本文主要分析了實(shí)現(xiàn)招投標(biāo)系統(tǒng)的主要方法,并對(duì)招投標(biāo)的主要功能做了描述。同時(shí)設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的招投標(biāo)系統(tǒng)。該系統(tǒng)是基于B/S下利用Visual Studio.NET和SQL2000開發(fā)的,是一個(gè)實(shí)驗(yàn)性的系統(tǒng)。對(duì)系統(tǒng)總體流程進(jìn)行了說明,對(duì)系統(tǒng)的功能進(jìn)了了描述;招投標(biāo)系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì);系統(tǒng)界面的設(shè)計(jì)與代碼實(shí)現(xiàn)。
此本系統(tǒng)開發(fā)了一個(gè)網(wǎng)絡(luò)招標(biāo)投標(biāo)系統(tǒng),必要重要的內(nèi)容是三個(gè)通用模塊即三個(gè)類文件,這三個(gè)類文集成了系統(tǒng)中數(shù)據(jù)庫應(yīng)用的方法,大部分的應(yīng)用程序都是通過掉用其中的方法完成操作的。
其中對(duì)數(shù)據(jù)的操作,基本上都是調(diào)用存儲(chǔ)過程完成的。存儲(chǔ)過程的應(yīng)用對(duì)于系統(tǒng)的維護(hù)和提高速度都具有重要的作用。
當(dāng)然,此系統(tǒng)還有很多需要改進(jìn)的地方,可以讓應(yīng)用程序作些適當(dāng)?shù)男薷模怪?。例如:許多數(shù)字項(xiàng)字段沒有驗(yàn)證;當(dāng)編輯用戶信息時(shí),必須強(qiáng)制輸入密碼,確保密碼匹配等等。返回網(wǎng)絡(luò)設(shè)備的鏈表,以供使用。
參考文獻(xiàn)
[1] 吉根林,崔海源.ASP.NET程序設(shè)計(jì)教程[M].北京:電子工業(yè)出版社,2004。
[2] 東方人華.Visual C#.NET Web應(yīng)用程序設(shè)計(jì)入門與提高[M].北京:清華大學(xué)出版社, 2005。
[3] 楊浩.ASP.NET.1.1入門經(jīng)典[M].北京:清華大學(xué)出版社, 2005。
[4] 劉振巖,劉慧敏,王歡.ASP.NET數(shù)據(jù)庫開發(fā)[M].北京:清華大學(xué)出版社, 2004。
[5] 劉斌,張軍.ASP.NET+SQL Server動(dòng)態(tài)網(wǎng)站開發(fā)案例精選[M].北京:清華大學(xué)出版社,2005。
[6] 張閱廷,王小科,許文武.ASP.NET數(shù)據(jù)庫系統(tǒng)開發(fā)完全手[M].北京:人民郵電出版社,2007。
[7] 李明剛, 肖建.ASP.NET Web 站點(diǎn)高級(jí)編程范例[M].北京:清華大學(xué)出版社,2004。
[8] 吉根林,崔海源.Web程序設(shè)計(jì)[M].北京:電子工業(yè)出版社,2002。
[9] 李偉紅.SQL Server 2000數(shù)據(jù)庫及應(yīng)用[M].北京:清華大學(xué)出版社,2005。
致 謝
在論文完成之際,學(xué)生謹(jǐn)向蔣毅老師和萬武南老師以深切誠摯的謝意!
感謝成都信息工程學(xué)院中所有傳授知識(shí)給我的老師們。
感謝所有我身邊的同學(xué),朋友,與你們的相識(shí)是我人生最大的幸福之一,謝謝你們。
作者簡(jiǎn)介
姓 名:趙遠(yuǎn)強(qiáng) 性別:男
出生年月:1982年10月08日 民族:漢
E-mail:lasyaji@126.Com
聲 明
本論文的工作是 2007年 2月至2007年 6月在成都信息工程學(xué)院網(wǎng)絡(luò)工程系完成的