MFC編程基礎-最新課件_第1頁
MFC編程基礎-最新課件_第2頁
MFC編程基礎-最新課件_第3頁
MFC編程基礎-最新課件_第4頁
MFC編程基礎-最新課件_第5頁
已閱讀5頁,還剩31頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第八章 ASP數據訪問本章提要:本章介紹數據訪問的基本概念,并以Access數據庫為例,詳細介紹ASP的數據庫連接,記錄的寫入、查詢、刪除、修改等操作,通過實例介紹如果在頁面上進行記錄的顯示和分頁等技術。8.1 表單數據傳送通過表單元素向服務器傳送變量,然后將變量值顯示在客戶端的瀏覽器,是一項很平常而重要的工作。8.1.1 表單元素表單元素就如Visual Basic之中的控件一樣。在Dreamweaver 2004中,提供了這些元素的具體形式。而表單域作為互動性的一種高級類型,它將表單元素結合在一起,讓用戶可以通過瀏覽器,將數據傳送到服務器上的其他ASP應用程序。所有的通用表單元素(如單選按

2、鈕、下拉列表、復選框等)都可以根據網站的整體構思添加到頁面之上,以完成網頁的制作。下面的圖8.1給出了Dreamweaver 2004中的表單元素,它們包括文本字段、隱藏域、文本域、復選、單選、單選組、列表菜單、跳轉菜單、圖像域、文件域、按鈕、標簽、字段集等。圖8.1 Dreamweaver MX 2004 設計視圖中的表單元素也可以通過插入菜單,來插入這些表單元素。圖8.2給出了通過插入菜單插入表單元素的列表。圖8.2 Dreamweaver MX 2004設計視圖下插入菜單中的表單元素8.1.2 建立表單域表單元素放在一個表單域里面,建立一個表單域,然后修改動作里面的文件為要接受這個表單變

3、量的ASP文件。方法有兩種,一種是post,這個方法傳送的變量不會在瀏覽器的地址欄里面顯示,可以大批量傳送數據;另一種是get,則是會在瀏覽器地址欄里面顯示的。 下面我們通過一個文本表單元素來說明建立表單域的方法。文本域是最基本的表單元素,它傳送的是文本信息。一般用戶名、密碼等都要用這個元素傳送,只不過如果是密碼的話,要在類型里面選擇密碼類型,這樣就會以 * 代替顯示出來的密碼字符。文本域的名字很重要,以后會用到這個名字所以一般不用默認的名字。示例: 建立一個提交表單asp01f.asp文件。圖8.3為代碼,圖8.4為顯示效果。圖8.3 提交表單asp01f.asp圖8.4 提交表單asp01

4、f.asp的顯示效果這個表單開始的一行:<form name="form1" method="post" action="asp01.asp">,指定了表單提交的模式為post方式以及向誰(asp01.asp)提交。這個表單中有兩個用于數據輸入的文本框:用戶和密碼。注意密碼框的type屬性是password,那么在密碼輸入時,為安全起見,將不會顯示其值,而用 * 號代替。另有兩個單選按鈕,用于選擇性別。還有一個選項列表,用于選擇城市。最后兩個按鈕,一個用于確定提交,一個用于取消重置,請分別注意它們的type屬性為submi

5、t和reset。 建立一個接收提交信息并顯示的頁面asp01.asp。圖8.5為代碼。圖8.5 接收并顯示提交信息頁面asp01.asp由于前面是用的post方法,那么在asp01.asp里面,就可以用這樣的語句來得到變量:<% user = request.form("user") %> 。如果要顯示變量則用:<% response.write user %>。而如果方法用的是get方法,那么就改為 <% name=request.querystring("user") %>。實際上,兩者可以統一為name=requ

6、est("name")。 運行。下面是運行時的狀態。圖8.6首先執行asp01f.asp,填入數據后,按確定提交,得到圖8.7的顯示結果。圖8.6 執行提交表單并填入信息圖8.7 接收顯示結果8.2 數據庫的建立為了進行數據的訪問,首先要建立數據庫,本節以Access2003為例,建立一個名為exasp.mdb的數據庫,并建立一個users數據表,以備本章示例之用。有關其他類型的數據庫,我們在后面將給出一個總結說明,而更多的數據庫知識,請參閱相關資料。下面通過圖示,快速介紹建立的過程。 圖8.8 Access 2003工作界面圖8.8 Access 2003新建文件面版圖8

7、.9 新建數據庫取名exasp.mdb圖8.10 exasp.mdb對象設計窗體圖8.11 在exasp.mdb數據庫新建表users 圖8.12 設置time字段默認值 圖8.13 輸入幾條初始數據庫而得到的表8.3 數據庫的連接與記錄的讀取本節學習掌握ASP頁面的Access數據庫的連接,以及數據表記錄的讀取。下面的步驟是一個典型的ASP與數據庫連接的過程:建立連接對象、設置數據庫路徑:打開數據庫、設置記錄對象、取記錄。在ASP中,用來存取數據庫的對象統稱ADO(Active Data Objects),主要含有三種對象:Connection:數據連接對象,用于打開或連接數據庫。Recor

8、dset:記錄集對象,用于存取數據表記錄。Command:命令對象,用于對數據庫執行查詢命令。8.3.1 數據庫的連接基于微軟IIS的平臺上,通過服務器端運行的ASP程序來訪問后臺數據庫,是一種最常見的模式。而對于小型的數據庫應用需求,微軟的Access數據庫,應該是與ASP程序配套使用的首選。由于Access數據庫的ODBC驅動程序支持的SQL指令集,執行效率高,所以Access后臺數據庫、ASP服務器端程序、客戶端IE瀏覽器,是一個精練實用高效的組合模式。在這種使用模式中,ASP程序無疑是最重要的,是溝通客戶端和后臺數據庫之間的橋梁。在ASP程序中,通過VB Script,建立對Acces

9、s數據庫的連接,是客戶能夠訪問后臺數據庫的前提。 連接各數據庫可以使用驅動程序,也可以使用數據源,建議大家使用驅動程序,因為使用驅動程序非常方便、簡單,而使用數據源比較麻煩。請看下面的代碼:<% set conn=server.createobject("adodb.connection") conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&server.mappath("exasp.mdb")%> 程序行:set conn=server.creat

10、eobject("adodb.connection"),利用Server對象的createobject方法,建立一個ADO對象集中的connection對象,即連接對象。這是建立數據庫連接的初始步驟。執行這行程序后,conn成為一個連接對象。 程序行:conn.open " Provider = Microsoft.Jet.OLEDB.4.0; Data Source=" & server. mappath ("exasp.mdb"),利用連接對象conn的open方法打開一個指定的數據庫。其中,服務器對象的mappath函數

11、,取得要打開數據庫的完整的文件路徑,這其中,數據庫名是我們需要指定的參數,應該用我們要打開的數據庫的實際名稱替代。如果數據庫名是直接作為常量出現,要用引號將其括起來,并且不能丟掉擴展名。 簡單地說,上面的代碼就是兩句話,第一句話定義了ADODB數據連接組件conn,第二句話利用連接組件conn連接到了數據庫exasp.mdb。再看下面的代碼:<%exec="select * from users"set rs=server.createobject("adodb.recordset")rs.open exec,conn%>這三條語句加在前面兩

12、條語句的后面。 程序行:exec="select * from users"。設置查詢數據庫的命令,它是通過一個SQL查詢語句實驗的。select后面加的是字段,* 表示所有字段,from后面再加上表的名字,我們前面在exasp.mdb數據庫中建立了一個users表。 程序行:set rs=server.createobject("adodb.recordset")。定義一個記錄集組件。今后,可以將通過執行查詢所有搜索到的記錄都放在這個組件(對象)中, 程序行:rs.open exec,conn。是打開這個記錄集,exec就是前面定義的查詢命令,conn

13、就是前面定義的數據庫連接組件。這一句的含義可能簡單理解為:在conn所指定的數據庫中去,依據exec的設定去執行查詢,將查詢結果放在打開的rs對象中。關于這條語句的參數值說明如下:格式:Recordset.open Source,ActiveConnection,CursorType,LockType,Options 各參數的含義如下表8.1參數含義值參數值含義SourceSQL查詢、數據表或存儲過程ActiveConnection打開的連接或連接字符串CursorType游標類型0只在記錄中向前移動,速度較快。1可任意移動,其他用戶修改記錄可見,添加記錄不可見,刪除記錄字段值不可用。2可任意

14、移動,其他用戶改、添、刪的記錄均可見,速度較慢。3可任意移動,其他用戶增、刪、改的記錄均不可見。LockType并發控制0記錄為只讀1只要保持Recordset為打開,其他用戶就無法編輯該記錄集中的記錄。2當更新recordset中的記錄時,將記錄加鎖3以批模式時更新記錄時加鎖Options指定source傳遞命令的類型1SQL語句2數據表名4存儲過程8未知類型表8.1 Recordset.open參數說明8.3.2 記錄的讀取以下語句完成記錄的讀取:<table width="100%" border="1" cellspacing="

15、1"><%do while not rs.eof%><tr><td align="center"><%=rs("ID")%></td><td align="center"><%=rs("name")%></td><td align="center"><%=rs("tel")%></td><td align="cen

16、ter"><%=rs("city")%></td><td align="center"><%=rs("time")%></td></tr><%rs.movenext loop%></table>在一個表格中,我們用5列分別顯示了上次建立的表里面的5個字段,用do循環,not rs.eof的意思是條件為沒有讀到記錄集的最后,rs.movenext的意思是顯示完一條轉到下面一條記錄,<% = %>等價于<%re

17、sponse.write%>用于在html代碼里面插入asp代碼,主要用于顯示變量。8.3.3 示例下面的圖示給出了一個表、一個查詢顯示數據ASP頁面及其執行結果。注意:通常我們將數據庫連接語句作為單獨的ASP文件(如conn.asp),而在具體的數據庫操作頁面中,通過一條語句包含這個文件即可:<!- #include file = "conn.asp" >。圖8.14 已建立的數據庫exasp.mdb中的表users圖8.15 用于數據庫連接的conn.asp圖8.16 通過查詢顯示數據頁面asp02.asp圖8.17 asp02.asp的執行結果8.4

18、 記錄的寫入8.4.1記錄寫入先建立一個表單(圖8.18)圖8.18 寫入提交表單再建立一個記錄寫入操作ASP頁面(圖8.19)。其中包含了conn.asp文件,用以連接到數據庫exasp.mdb。通過request對象,得到提交表單中的值,將其賦給相應變量。接著建立一個SQL查詢字符串:exec ="insert into users(name,tel,city)values('"&name&"',"&tel&",'"&city&"')&quo

19、t;insert into后面加的是表的名字users,緊跟其后的括號里面是需要添加的字段名,不用添加的字段以及字段內容為默認值的,可以省略不寫。values后面是傳送過來的變量。以后執行查詢時,將這些變量的值添加到記錄的字段中。請注意:exec是一個字符串變量,它保存了一個SQL查詢語句字符串,這個字符串是分為如下七節通過 & 操作符連接起來的。"insert into guestbook(name,tel,message)values('"name "'," tel ",'" city "

20、')"在ASP里面不能嵌雙引號,可以用單引號代替雙引號,放在雙引號里面,連接兩個變量用 + 或者 & 。中間的name、tel、city,就是表單傳來的變量。對于name和city,將用單引號括起來,表示是字符串。而tel是數字型變量,所以不需要單引號括起來。如果用表單傳來的數據代替變量名字,并假設name="張三",tel=8877666,ciyt="廣州。則上述查詢字符串的實際結果為:"insert into guestbook(name,tel,message) values('張三',8877666,&#

21、39;廣州')"接下來的conn.execute語句,即執行上述exec字符串指定的SQL命令。最后通過conn.close把打開的數據庫關閉,把定義的組件conn設置為空,并顯示添加成功提示信息。 圖8.19 記錄寫入操作運行。下面的圖8.20、圖8.21、圖8.22,分別通過asp03f.asp提交數據,并執行寫入頁面asp03.asp。最后查看數據庫表的變化。圖8.20 在寫入表單中鍵入信息圖8.21 按確定后寫入成功提示圖8.22 數據表的變化說明添加記錄成功8.4.2另一種記錄寫入方法下面介紹另一種記錄寫入的方法。下面一系列圖中給出了相應的代碼。提交表單和前面的基本

22、一樣,只不過提交的頁面換了一個示例頁面asp03a.asp。這里主要談談寫入記錄頁面。該頁面的代碼如下:<!-#include file="conna.asp"-><%sql="select * from users"rs.open sql,db,1,3rs.addnewrs("name")=request.form("name")rs("tel")=request.form("tel")rs("city")=request.form(&

23、quot;city")rs.updaters.closeset rs=nothingresponse.write "記錄添加成功!"%>上述代碼中主要有幾點不同于前面的第一種方法: 在conna.asp中,建立了記錄集對象。而rs.open sql,db,1,3,記錄集對象rs,以可寫入方式打開了通過sql查詢得到的數據表記錄。 對于rs.addnew,先行創建一條空的新記錄。 然后通過賦值的方式將提交表單提交的數據寫入到記錄集的新記錄之中。 通過rs.update更新數據庫表,即實際寫入。圖8.23 向asp03a.asp提交的表單圖8.24 數據庫連接與

24、記錄集的定義圖8.25 寫入記錄的另一方式圖8.26 通過提交表單提交數據圖8.27 記錄添加成功圖8.28 數據庫表的變化顯示記錄添加成功8.5 記錄的查詢本節學習掌握通過ASP頁面對Access數據庫表記錄的查詢顯示。顯然,我們要對所有記錄進行查詢,但是我們真正需要得到的記錄,不可能是所有記錄,所有我們必須能夠通過適當的查詢方式,來得到我們所要的記錄。例如:下面的語句,依據SQL查詢語句,通過記錄集組件rs,得到所有記錄。這不我們最后所需要的。<!include file="conn.asp"-> <% exec="select * from

25、 users" set rs=server.createobject("adodb.recordset") rs.open exec,conn,1,1 %> 下面請先看一組語句: a="張三" b=8898002 exec="select * from users where name='"+a+"'and tel="+bwhere后面加上的是條件,與是and,或是or,我想=,<=,>=,<,>的含義大家都知道吧。這句話的意思就是搜索name是張三的,并且電

26、話是111的記錄。還有一點就是如果要搜索一個字段里面是不是包含一個字符串就可以這么寫:where instr(name,a)也就是搜索name里面有a(張三)這個字符串的人。我這里的a,b,是常量,大家可以讓a,b是表單提交過來的變量,這樣就可以做一個搜索了。圖8.29 查詢條件提交表單圖8.30 查詢條件提交表單顯示效果圖8.31 查詢并顯示結果圖8.32 執行查詢條件提交表單圖8.33顯示查詢結果8.6 記錄的刪除本節學習掌握通過ASP頁面對Access數據庫表記錄的刪除操作。記錄的刪除操作可使用SQL刪除語句來實現。假設數據exasp.mdb的users表的記錄如下圖:圖8.34 use

27、rs表記錄請看下面的例子:在一個表單中輸入要刪除記錄的ID號,然后刪除數據庫表中與這個輸入值相同的ID的記錄。圖8.35 刪除條件提交表單圖8.34中,給出了提交刪除申請的表單文件asp05f.asp,它向asp05.asp提交刪除條件數據。 圖8.35中,給出了刪除記錄并顯示剩余記錄的代碼。其中下面兩行是關鍵性的代碼。exec="delete * from users where ID="&request.form("id")conn.execute exec第一行給出用于刪除的SQL語句字符串,其中條件是表中的ID字段值等于來自提交表單的id

28、變量值。第二行執行這個SQL刪除語句。其它代碼包括前面的包括文件和記錄集的定義和打開。后面的是用于顯示剩余記錄的代碼。圖8.36 刪除記錄并顯示剩余記錄代碼下面來執行:圖8.37 執行提交表單并輸入記錄號ID號為6的記錄被刪除剩余記錄顯示如下:圖8.38 執行提交表單并輸入記錄號8.7 記錄的修改修改記錄是數據庫基本操作之一。下面通過實例來學習修改記錄,其中有三個ASP頁面:asp06f.asp(通過輸入修改查詢條件name來指定記錄)、asp06.asp(找到并顯示將被修改的記錄,且可進行修改數據提交)、asp06s.asp(更新記錄,實際修改表)。 請看圖8.39,其中通過表單提交name

29、數據。圖8.39 用于給出修改者姓名的提交表單 請看下面的圖8.40中的代碼。其中有如下包含語句用于錯誤處理:<!-#include file="err.asp" ->err.asp文件有如下代碼用于過濾錯誤信息,當出現錯誤時,代碼繼續運行。<%Response.Buffer=TrueOn Error Resume Next%>在后面用以下代碼實現錯誤處理,如果出現錯誤則清除頁面并給出提示信息:<%If Err.Number <> 0 Then Response.ClearResponse.Write "沒有找到記錄!&q

30、uot;End If%> 下面這一段代碼先定義查詢字符串,然后通過記錄集對象打開查詢并存放查詢結果。注意查詢字符串中的where條件,name表示字段,后面跟一個字符串,所以要用單引號將request.form("name")引起來,request.form("name")則是返回上面提交頁面中的數據作為查詢值。<%exec="select* from users where name='"&request.form("name")&"'"set rs

31、=server.createobject("adodb.recordset")rs.open exec,conn%>接下來定義了一個表單。一方面這個表單得到rs的記錄字段值;另一方面表單中的這些值又可以修改,并可提交給asp06s.asp頁面。<form name="form1" method="post" action="asp06s.asp">編號 <input type="text" name="ID" value="<%=rs(

32、"ID")%>">姓名 <input type="text" name="name" value="<%=rs("name")%>"><br>電話 <input type="text" name="tel" value="<%=rs("tel")%>">城市 <input type="text" name=&q

33、uot;city" value="<%=rs("city")%>"><input type="submit" name="Submit" value="確定"></td></form>最后是關閉記錄集和數據庫連接對象。<%rs.closeset rs=nothingconn.closeset conn=nothing%>圖8.40 根據姓名找出并顯示記錄 請看下面的圖8.41中的代碼。為了接受asp06.asp中經過修改

34、后的記錄數據,必須又要找到那條記錄,這時通過前面已找到的記錄的ID來定位記錄。注意,在用rs打開查詢時用到了參數 “1,3”。exec="select* from users where ID="&request.form("ID")set rs=server.createobject("adodb.recordset")rs.open exec,conn,1,3接著用三條語句將修改后的三個字段值寫入rs記錄集中,再進行rs.update,更新數據表,完成修改數據記錄值。后面是關閉記錄集和數據庫連接對象,并提示記錄修改成功。r

35、s("name")=request.form("name")rs("tel")=request.form("tel")rs("city")=request.form("city")rs.updaters.closeset rs=nothingconn.closeset conn=nothingresponse.write "記錄修改成功!"圖8.41 修改記錄 下面是示例演示的情況:圖8.42 修改前的表圖8.43 輸入姓名圖8.44 顯示該記錄圖8.45

36、 修改該記錄號圖8.46 修改成功圖8.47 修改后的表8.8 記錄顯示的分頁前面在第三節學習了記錄的顯示,當記錄數相當多的時候,我們有必要在顯示的過程中對它們進行分頁顯示。8.8.1 實現分頁的基本方法將數據庫表中所有符合查詢條件的記錄讀入到記錄集rs而存放于內存,然后通過ADO Recordset對象所提供的幾個專門支持分頁處理的屬性: PageSize、PageCount、 AbsolutePage等來處理分頁。所以我們首先必須了解 Reordset 對象的屬性和方法: BOF與EOF 屬性 通過檢驗BOF與EOF 屬性,可以判斷目前記錄指針所指向的RecordSet的位置,亦可判斷一個

37、 Recordset 對象是否包含有記錄或者移動記錄行是否已經超出Recordset對象范圍。如:<% if not rs.eof then .%>。具體情況參見下面列表:當前記錄位置位于第一行記錄之前,BOF為true,反之為false。 當前記錄位置位于末一行記錄之后,EOF為true,反之為false。當前記錄位置位于RecordSet當中,BOF與EOF都為False。 如果在RecordSet里沒有任何記錄,BOF與EOF都為True。 Move 方法Move方法用于將記錄指會移動到RecordSet中的某一條記錄。語法如下: rs.Move NumRecords,Sta

38、rt 這里的“rs”為一個對象變量,表示一個想要移動當當前記錄位置的Recordset 對象;“NumRecords”是一個正負數運算式,設定當前記錄位置的移動數目;“start”是一個可選的項目,用來指定記錄起始的標簽。所有的 Recordset 對象都支持 Move 方法,如果 NumRecords 參數大于零,當前記錄位置向末尾的方向移動;如果其小于零,則當前記錄位置向開頭的方向移動;如果一個空的 Recordset 對象調用 Move 方法,將會產生一個錯誤。MoveFirst方法:將當前記錄位置移至第一條記錄。 MoveLast方法:將當前記錄位置移至最后一條記錄。 MoveNext

39、方法:將當前記錄位置移至下一條記錄。 MovePrevious方法:將當前記錄位置移至上一條記錄。 Moven方法:移動指標到第n行記錄, n 由 0起。 AbsolutePage 屬性 AbsolutePage 屬性設定當前記錄的位置是位于哪一頁的頁數編號;使用 PageSize 屬性將 Recordset 對象分割為邏輯上的頁數,每一頁的記錄數為 PageSize( 除了最后一頁可能會有少于 PageSize 的記錄數 )。這里必須注意并不是所有的數據提供者都支持此項屬性,因此使用時要小心。與 AbsolutePosition 屬性相同, AbsolutePage 屬性是以 1 為起始的,

40、若當前記錄為 Recordset 的第一行記錄, AbsolutePage 為 1。可以設定 AbsolutePage 屬性,以移動到一個指定頁的第一行記錄位置。 AbsolutePosition 屬性 若您需要確定目前指標在 RecordSet 中的位置,您可以用AbsolutePosition 屬性。 AbsolutePosition 屬性的數值為目前指標相對於第一行的位置,由 1算起,即第一行的 AbsolutePosition 為 1。注意 , 在存取 RecordSet 時,無法保證 RecordSet 每次都以同樣的順序出現。若要啟用 AbsolutePosition,必須先設定為

41、使用用戶端cursor( 指針 ), asp 碼如下:rs.CursorLocation = 3 PageCount 屬性 使用 PageCount 屬性,決定 Recordset 對象包括多少“頁”的數據。這里的“頁”是數據記錄的集合,大小等于 PageSize 屬性的設定,即使最后一頁的記錄數比 PageSize 的值少,最后一頁也算是 PageCount 的一頁。必須注意也并不是所有的數據提供者都支持此項屬性。 PageSize 屬性 PageSize 屬性是決定 ADO 存取數據庫時如何分頁顯示的關鍵,使用它就可以決定多少記錄組成一個邏輯上的“一頁”。設定并建立一個頁的大小,從而允許使

42、用 AbsolutePage 屬性移到其它邏輯頁的第一條記錄。PageSize 屬性能隨時被設定。 RecordCount 屬性 這也是一個非常常用和重要的屬性,我們常用 RecordCount 屬性來找出一個 Recordset 對象包括多少條記錄。如:<% totle=RS.RecordCount %>,在了解了 Recordset 對象的以上屬性和方法后,我們來考慮一下,如何運用它們來達到我們分頁顯示的目的。首先,我們可以為 PageSize 屬性設置一個值,從而指定從記錄組中取出的構成一個頁的行數;然后通過RecordCount 屬性來確定記錄的總數;再用記錄總數除以 Pa

43、geSize 就可得到所顯示的頁面總數;最后通過 AbsolutePage 屬性就能完成對指定頁的訪問。8.8.2 分頁示例圖8.48給出了一個完整的示例代碼,下面我們來分析一下這段代碼的具體作用。exec="select * from users"set rs=server.createobject("adodb.recordset")rs.open exec,conn,1,1上面的代碼將users中的記錄放入到記錄集rs中。rs.pagesize=2size=rs.pagesizepagecount=rs.PageCount 然后設置一頁中的記錄數為

44、2,并將這個值保存到size變量中。接著將頁數保存在pagecount變量中。page=int(request.querystring ("page")接下來通過QueryString集合檢索 HTTP 查詢字符串中變量page的值,并將賦給代碼中的page變量備用。if request.querystring("page")="" then page=1if page<1 then page=1if page>rs.pagecount then page=rs.pagecount以下三個if語句檢測HTTP查詢字符串中變量page的值,以確定一些特殊情況,一是當為空是或是小于1時,表示顯示第一頁,大于頁數時,表示顯示最后一頁。rs.absolutepage=page 然后通過absolutepage確定顯示絕對頁。%><table border="0" cellspacing="1"><tr><td width=60

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論