利用ADO對象訪問數(shù)據(jù)庫綜述_第1頁
利用ADO對象訪問數(shù)據(jù)庫綜述_第2頁
利用ADO對象訪問數(shù)據(jù)庫綜述_第3頁
利用ADO對象訪問數(shù)據(jù)庫綜述_第4頁
利用ADO對象訪問數(shù)據(jù)庫綜述_第5頁
已閱讀5頁,還剩56頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第7章利用ADO對象訪問數(shù)據(jù)庫7.1數(shù)據(jù)庫存取組件簡介7.2Connection鏈接對象7.3Recordset對象7.4圖片的上傳及圖片的顯示1.利用數(shù)據(jù)庫存取組件存取數(shù)據(jù)庫

數(shù)據(jù)庫存取組件簡介

數(shù)據(jù)庫存取組件(DatabaseAccessComponent)是使用ADO(ActiveXDataObjects)技術(shù)來存取符合ODBC(OpenDatabseConnectivity)標準的數(shù)據(jù)庫或具有表格狀的數(shù)據(jù)形式的一種ASP內(nèi)置組件,是所有ASP內(nèi)置組件中最重要的和使用最多的一個組件。

它可以使開發(fā)者輕松存取數(shù)據(jù)庫,并可以在客戶端實時更新顯示。

ADO內(nèi)部對象ADO是一種數(shù)據(jù)庫技術(shù),它提供的是一種數(shù)據(jù)訪問結(jié)口,這種應(yīng)用程序接口和應(yīng)用程序使用的語言無關(guān),因而使用它可以將傳統(tǒng)的數(shù)據(jù)庫后臺管理模式放到前臺的web頁面上來進行,使得數(shù)據(jù)庫的存取更加簡單、方便。ADO提供了幾個獨立的子對象,利用這些子對象實現(xiàn)對數(shù)據(jù)庫的訪問,在這幾個對象中,connection,command,和recordset對象是整個ADO的核心。主要功能分別如下:connection對象用來和數(shù)據(jù)庫建立連接。建立連接后,可以使用command對象與recordset對象來對數(shù)據(jù)庫進行存儲、更新、刪除的操作??刹幻鞔_建立連接對象,而是利用Command對象或recordset對象連接數(shù)據(jù)庫,這是建立的隱含連接對象。Command對象主要用來對數(shù)據(jù)庫進行查詢。recordset對象是最主要的對象,當對數(shù)據(jù)庫進行sql語句查詢時會返回一個記錄集,該記錄集包含所要查詢的全部數(shù)據(jù),然后利用ASP語言將記錄顯示在頁面上。而對于刪除、添加和更新記錄時因不需要返回記錄集,所以不必生成recordset對象。三者結(jié)合使用取得最佳效果。預(yù)備知識:1.在用ASP操作數(shù)據(jù)庫時可設(shè)置數(shù)據(jù)源連接數(shù)據(jù)庫,也可不設(shè)置數(shù)據(jù)源而直接在程序代碼中連接數(shù)據(jù)庫。2.對于access數(shù)據(jù)庫兩種方法都講。創(chuàng)建沒有ODBC數(shù)據(jù)源的連接程序如下:注意事項:Dbq是數(shù)據(jù)庫文件的物理路徑Driver是數(shù)據(jù)庫的類型,注意Driver和(*.mdb)之間有且僅有一個空格在實際開發(fā)中,由于考慮到程序移植后的路徑問題,常常利用server對象的mappath方法,將虛擬路徑轉(zhuǎn)變?yōu)閷嶋H的物理路徑。這種連接方法有一個很大的好處就是程序移植到別的服務(wù)器上后馬上就可以使用。要求:上面這段代碼要像公式一樣熟記。創(chuàng)建有ODBC數(shù)據(jù)源的連接1.先創(chuàng)建好數(shù)據(jù)源。2.然后在控制面板中設(shè)置ODBC數(shù)據(jù)源的連接。3.最后回到代碼界面寫如下代碼:Addr是設(shè)置的數(shù)據(jù)源的名字。特點點::這種種方方法法寫寫起起來來簡簡單單,,也也不不容容易易出出錯錯,,更更重重要要的的是是不不管管數(shù)數(shù)據(jù)據(jù)庫庫放放在在哪哪里里,,只只要要設(shè)設(shè)置置一一下下數(shù)數(shù)據(jù)據(jù)源源,,程程序序不不用用改改。。麻麻煩煩的的是是如如果果要要移移植植程程序序到到另另外外的的服服務(wù)務(wù)器器上上,,需需要要重重新新設(shè)設(shè)置置數(shù)數(shù)據(jù)據(jù)源源。。2.查查詢詢記記錄錄查詢詢記錄錄::就就是是將將數(shù)數(shù)據(jù)據(jù)庫庫中中的的數(shù)數(shù)據(jù)據(jù)讀讀出出來來顯顯示示在在頁頁面面上上,,這這是是數(shù)數(shù)據(jù)據(jù)庫庫程程序序中中最最常常用用的的操操作作。。一一般般會會用用到到如如下下的的select語語句句::select字字段段列列表表from表表名名where條條件件執(zhí)行行該sql語語句句后后就就會會返返回回一一個個記記錄錄集集對對象象,,包包含含符符合合條條件件的的若若干干條條記記錄錄。。返回回記記錄錄集集對對象象后后一一般般利利用用如如下下語語句句輸出出各條條記記錄錄。。Dowhilenot記記錄錄集集對對象象.eof記記錄錄集集對對象象.moveNextloop說明明::1.Eof屬屬性性用用于于判判斷斷當當前前記記錄錄指指針針是是否否在在記記錄錄集集的的結(jié)結(jié)尾尾,,返返回回true或或false。。eof位位于于最最后后一一條條記記錄錄之之后后。。2.Bof屬屬性性用用于于判判斷斷當當前前記記錄錄指指針針是是否否在在記記錄錄集集的的開開頭頭,,返返回回true或或false。。bof位位于于第第一一條條記記錄錄之之前前。。畫圖圖講講解解這這兩兩個個位位置置((當當指指針針移移到到第第一一條條記記錄錄后后再再向向后后退退指指向向bof,再再退退就就出出錯錯;;當當指指針針移移到到最最后后一一條條記記錄錄后后再再向向前前走走指指向向eof,再再向向前前移移動動就就出出錯錯。。))3.有有這這兩兩個個屬屬性性就就可可用用來來判判斷斷返返回回的的記記錄錄集集對對象象是是否否為為空空,,常常常常用用下下面面的的判判斷斷語語句句::ifnot記記錄錄集集對對象象.bofandnot記記錄錄集集對對象象.eofthen………endif4.看看例例子子如如何何實實現(xiàn)現(xiàn)查查詢詢3.打打開開詳詳細細頁頁面面在設(shè)計數(shù)數(shù)據(jù)庫時時,一個個數(shù)據(jù)表表可能包包含很多多個字段段,如果果把這些些字段都都顯示在在頁面上上,不美美觀也沒沒必要。。因此::通常的做做法是::在主頁頁面中只只顯示部部分字段段,另外外設(shè)置一一個詳細細超鏈接接,單擊擊該鏈接接就可以以打開另另一個詳詳細頁面面,在該該頁面中中來顯示示所有字字段。實現(xiàn)方法法:1.在主主頁面中中添加如如下超鏈鏈接:<ahref=“xx.asp?id=<%=rs(“id”)%>”target=“_blank”>詳細</a>將記錄編編號當參參數(shù)傳過過去2.在詳詳細頁面面中先使使用request.querystring(“id”)獲獲取傳過過來的id值。。然后利利用如下下查詢語語句查詢詢對應(yīng)記記錄即可可。Strsql=““select*fromuserswhereid=””&idsetrs=db.execute(strsql)此處加不不加雙引引號與字段類型型有關(guān)1.看完完整的程程序例子子。2.如果果不希望望添加一一個詳細細列,而而是單擊擊姓名即即可打開開詳細頁頁面,那那么只需需將姓名名列做超超鏈接設(shè)設(shè)置<ahref=“xx.asp?id=<%=rs(““id””)%>”target=““_blank”><%=rs(““name”)%></a>即可。。即希望點點哪個字字段出來來詳細頁頁面就對對哪個字字段做超超鏈接。。4.按字字段排序序利用orderby語句可可以讓返返回的記記錄集對對象按一一個或多多個字段段排序。。單擊標題題欄就可可讓記錄錄按相應(yīng)應(yīng)順序排排序的方方法:將將標題欄欄的對應(yīng)應(yīng)字段名名作為參參數(shù)傳回回來,然然后在select語語句中就就可以利利用orderby按返回回字段排排序。本本質(zhì)上是是根據(jù)傳傳回的字字段名稱稱實現(xiàn)動動態(tài)排序序而已。。具體實現(xiàn)現(xiàn)方法::a.將首首頁面的的標題欄欄改成超超鏈接,,都鏈接接回本頁頁面,并并把對應(yīng)應(yīng)字段名名稱當參參數(shù)傳回回來。b.利用用request.querystring方法法獲取排排序字段段名稱。。(第一一次打開開時沒有有參數(shù)傳傳入需給給一個默默認排序序字段。。)看程序具具體例子子。5.按單單個或多多個關(guān)鍵鍵字進行行模糊查查找與查找數(shù)數(shù)據(jù)無本本質(zhì)區(qū)別別,只是是在select語句句中使用用where條條件即可可?!癝elect*fromuserswherename=‘kk’””如果要進進行模糊糊查找,,只需用用到like運運算符和和通配符符%即可可?!癝elect*fromuserswherenamelike‘%kk%’”看程序具具體代碼碼說明:第第1個重重要部分分是定義義了兩個個變量分分別用來來表示查查找關(guān)鍵鍵字和查查找字段段。第2個重要要部分是是form表單單,希望望保留客客戶的選選擇。第第3個重重要部分分是組織織select語句。。查詢小結(jié)結(jié)1.需要要深刻掌掌握select語句句2.需要要認真體體會排序序、查找找的編程程思想6.添加加記錄需用如下下語句::insertinto表表名(字字段1,,字段2…)values(字段1的值,,字段2的值……)注意事項項:1.字段段列表可可選1個個或多個個字段,,但是必必須與后后面的一一一對應(yīng)應(yīng)。2.對于于文本型型和備注注型字段段,字段段值兩邊邊要加引引號,當當發(fā)生引引號嵌套套,內(nèi)層層引號改改為單引引號。3.自動動編號字字段不需需出現(xiàn)在在此語句句中4.日期期字段兩兩邊要加加#號5.如果果字段設(shè)設(shè)置了默默認值,,且沒有有出現(xiàn)在在insert語句中中,則該該字段會會自動賦賦以默認認值;若若沒有賦賦以默認認值,則則需要手手工寫代代碼設(shè)置置默認值值。6.對于于文本型型或備注注型字段段,access默認認是不能能賦以空空字符串串,則寫寫語句時時要加以以注意。。如:insertintousers(name)values(“””)是錯誤的的。當然然如果修修改數(shù)據(jù)據(jù)庫使它它允許被被賦以空空字符串串則上句句正確。。添加記錄錄示例步驟:1.一個個普通表表單文件件,用來來填寫要要插入記記錄的信信息2.執(zhí)行行插入語語句填寫寫完整信信息看程序代代碼:1.Response.redirect"index.asp““指自動引引導(dǎo)客戶戶至另一一個頁面面,作用用同超鏈鏈接,但但超鏈接接是需要要客戶單單擊才能能轉(zhuǎn)至另另一頁面面。2.Sql語句句:“Insertintousers(name)values(‘‘李’)”strsql="insertintousers(name,tel,email,intro,submit_date)values('"&name&"','"&tel&"','"&email&"','"&intro&"',#"&now()&"#)"3.改進進:可將將表單里里填寫的的內(nèi)容提提交給本本頁面,,此時需需要添加加一個判判斷語句句在客戶端端進行驗驗證在客戶提提交前就就提示客客戶填寫寫必要信信息,以以免漏填填而回頭頭重填的的麻煩。。使用vbscript實現(xiàn)客客戶端驗驗證。步驟:首先把把表單中中的提交交按鈕修修改為普普通按鈕鈕,然后后在表單單標記中中增加一一個onclick事事件屬性性;接著著在主程程序中書書寫該事事件內(nèi)容容看程序序代碼碼(add_yanzhen.asp)添加記記錄小小結(jié)添加記記錄是是數(shù)據(jù)據(jù)庫中中最容容易出出錯的的地方方。1.如如果要要求客客戶必必須輸輸入某某些內(nèi)內(nèi)容項項目,,最好好對其其進行行客戶戶端驗驗證。。(只只有通通過客客戶端端驗證證才能能提交交表單單,只只有提提交表表單后后才會會執(zhí)行行其中中的sql語句句)2.如如果果添加加記錄錄出錯錯,往往往是是insert語句句有誤誤,仔仔細檢檢查。。4.刪刪除記記錄用如下下SQL語語句::Deletefrom表表名Where條條件刪除記記錄示示例1.在在首頁頁增加加如下下超鏈鏈接。。單擊擊它,,打開開刪除除頁面面并將將相應(yīng)應(yīng)記錄錄編號號傳過過去。。<ahref=“delete.asp?id=<%=rs(““id”)%>”>刪除除</a>2.在在刪除除頁面面首先先獲取取傳過過來的的id,然然后執(zhí)執(zhí)行其其中的的刪除除語句句3.看看程序序代碼碼分析析5.修修改記記錄修改記記錄需需要用用到update語語句。。Update表表名set字字段1=字字段1的值值,字字段2=字字段2的值值…where修改記記錄時時,通通常都都是給給客戶戶提供供一個個表單單,然然后將將數(shù)據(jù)據(jù)庫中中要修修改的的字段段內(nèi)容容顯示示在該該表單單中。??蛻魬籼峤唤缓?,,利用用update語句句修改改相應(yīng)應(yīng)的字字段。。修改記記錄示示例1.在在主頁頁面添添加如如下修修改超超鏈接接,可可鏈接接到修修改頁頁面。。<ahref=“update_form.asp?id=<%=rs(“id””)%>>修改改</a>”2.在在修改改表單單頁面面(update_form.asp)首首先獲獲得傳傳過來來的id號號,根根據(jù)此此ID查詢詢記錄錄。這這里需需要將將前面面?zhèn)鬟^過來的的id繼續(xù)續(xù)傳到到下面面的頁頁面,,利用用action屬性性實現(xiàn)現(xiàn)。3.獲獲取前前頁傳傳過來來的id和和表單單中修修改的的內(nèi)容容執(zhí)行行更新新語句句4.理理解update語語句Recordset對象象Recordset對象又又稱記記錄集集對象象。當當用Connection對象執(zhí)執(zhí)行查查詢命命令后后,就就會得得到一一個滿滿足條條件的的所有有記錄錄,它它們是是一個個集合合,稱稱為記記錄集集對象象。利用前前面的的知識識操作作數(shù)據(jù)據(jù)庫基基本上上已夠夠用,,但是是對于于分頁顯顯示只能通通過Recordset對象完完成。。本節(jié)知知識點點1.建建立recordset對象象的方方法,,recordset對象象的屬屬性和和方法法2.利利用recordset對象象查詢詢記錄錄的基基本方方法3.利利用recordset對象象實現(xiàn)現(xiàn)添加加、刪刪除和和更新新記錄錄操作作4.數(shù)數(shù)據(jù)分頁顯顯示技術(shù)的的實現(xiàn)現(xiàn)1.建建立recordset對象象的方方法語法為為:Setrecordset對象象=server.createObject(““adodb.recordset””)然后,,就可可以用用open方法法打開開一個個數(shù)據(jù)據(jù)庫,,語法法為::recordset對象象.open[strsql],[db],[cursorType],[lockType],[options]Sql語句句或數(shù)數(shù)據(jù)表表名包含數(shù)數(shù)據(jù)庫庫連接接信息息的字字符串串Recordset對象象記錄錄集中中的指指針類類型Recordset對象象的鎖鎖定方方式最后一一項通通常省省略O(shè)pen方方法的的參數(shù)數(shù)較多多,其其含義義詳細細介紹紹如下下。指針類類型:此參參數(shù)用用來設(shè)設(shè)定RecordSet對象象在打打開數(shù)數(shù)據(jù)庫庫時所所使用用的記記錄指指針類類型,,此參參數(shù)有有四種種類型型可選選AdOpenForwardOnly(0:缺缺省值值)::向前前指針針,只只能向向前移移動指指針,,且記記錄集集是只只讀的的。adOpenKeyset::鍵鍵盤指指針,,參數(shù)數(shù)值為為1。。記錄錄指針針可以自自由移移動,當某某用戶戶做了了修改改(除除增加加新數(shù)數(shù)據(jù))),其其他用用戶都都可以以立即即看到到。adOpenDynamic::動態(tài)態(tài)指針針,參參數(shù)值值為2。其其它用用戶對對數(shù)據(jù)據(jù)表所所做任任何修修改或或增刪刪記錄錄操作作都會會立即即反映映到RecordSet對象象中。。記錄錄指針針可以自自由移移動。adOpenStatic::靜靜態(tài)指指針,,參數(shù)數(shù)值為為3。??煽勺杂捎梢苿觿又羔樶?,所所有更更新數(shù)數(shù)據(jù)都都不會會顯示示在其其他客客戶端端。鎖定方方式:此參參數(shù)是是設(shè)置置RecordSet對對象的的并發(fā)發(fā)事件件的控控制方方式,,其取取值和和含義義如下下表::adLockReadOnly:參參數(shù)值值為1(默默認值值),,是以以只讀方式打打開,,其它它用戶戶不能能修改改任何何數(shù)據(jù)據(jù)。adLockPerssimistic:參參數(shù)數(shù)值為為2,,只只能同同時被被一個個客戶戶修改改,修修改時時鎖定定,修修改完完畢釋釋放。。adLockOptimistic:參參數(shù)數(shù)值為為3,,可可以同同時被被多個個客戶戶修改改。adLockBatchtimistic:參數(shù)數(shù)值為為4,,數(shù)數(shù)據(jù)可可以修修改,,但不不鎖定定其他他客戶戶。1.利利用connection對對象的的execute方方法——最常常用建立Recordset對象象的具具體方方法2.利利用connection對對象的的execute方方法的的另一一種方方式——最常常用這是將將方法法一修修改為為明確確建立立Recordset對對象。。3.直直接建建立recordset對象象—最最簡單單這種方方法由由于沒沒有明明確建建立Connection對對象和Command對對象,,就無無法使使用他他們的的特殊殊功能能。不管采采用什什么方方法建建立recordset對象象,其其實都都是建建立一一個記記錄集集,好好比一一個電電子表表格,,包含含若干干條記記錄,,每條條記錄錄包括括若干干列。。如果果記錄錄集非非空,,則利利用doloop循環(huán)環(huán)輸出出。對于記記錄集集來說說,任任何時時候只只有一一條當當前記記錄。。記錄集集有兩兩個特特殊位位置(eof和和bof),利利用這這兩個個位置置可判判斷返返回的的記錄錄集對對象是是否為為空建立Recordset對象象的總總結(jié)一般只有在在查詢記錄錄時才會需需要建立Recordset對象。而插入、刪刪除和修改改記錄時則則不需要返返回記錄集集,所以一一般就利用用Connection對象象或Command對象的Execute方法法就可以了了。Recordset對象的屬屬性1.這組屬屬性主要是是關(guān)于記錄錄的,它們們只能在打打開記錄集集后讀取。。a.Recordcount:用于返返回記錄集集中的記錄錄總數(shù)。與與selectcount(id)…語語句有類似似功能。如如輸出記錄錄總數(shù):<%=rs.recordcount%>b.bof:用于判判斷當前記記錄指針是是否在記錄錄集開頭c.eof:用于判判斷當前記記錄指針是是否在記錄錄集結(jié)尾顯示數(shù)據(jù)庫庫記錄時常常用如下語語句:<%Dowhilenotrs.eof…rs.movenextloop%>2.下面這這組屬性主主要用來完完成數(shù)據(jù)分分頁顯示功功能。通常常在打開記記錄集后再再設(shè)置。a.pageSize:用于于設(shè)置數(shù)據(jù)據(jù)分頁顯示示時每一頁頁的記錄數(shù)數(shù)如rs.pagesize=5b.pageCount:用用于設(shè)置數(shù)數(shù)據(jù)分頁顯顯示時數(shù)據(jù)據(jù)頁的總數(shù)數(shù)如var=rs.pagecountc.absolutePage:用于于設(shè)置當前前指針位于于哪一頁如rs.absolutePage=整數(shù)d.absolutePosition:用于于設(shè)置當前前指針所在在的記錄行行的絕對值值如rs.absolutePosition=整數(shù)數(shù)注:利用這這幾個屬性性時要求指指針類型設(shè)設(shè)置為1((鍵盤指針針)Recordset對象的方方法1.open:用于于打開記錄錄集2.moveNext:用于于將記錄指指針移動到到下一條記記錄3.find:將記記錄指針定定位到由條條件指定的的記錄其他方法通通過例子講講解2.應(yīng)用---利用此此對象查詢詢記錄1.建立recordset對象2.查詢記記錄3.看例子子3.利用此此對象增、、刪、改數(shù)數(shù)據(jù)庫主要用到addnew、delete和update方方法。rs.addNew字段名名,字段值值rs.deleters.update如何添加記記錄,如何何更新、刪刪除記錄看程序代碼碼分析添加記錄修改記錄刪除記錄4.分頁顯顯示數(shù)據(jù)程序由三部部分組成。。第一部分分決定當前前顯示第幾幾頁;第二二部分是分分頁顯示的的主要內(nèi)容容;第三部部分輸出總總數(shù)和當前前頁碼如何結(jié)束本本數(shù)據(jù)頁兩種情況::1.顯示示夠pagesize屬性指指定的數(shù)目目后就結(jié)束束本頁2.最后一一頁不是一一個完整頁頁,但是當當?shù)竭_整個個記錄集的的結(jié)尾(rs.eof)時也也應(yīng)該結(jié)束束。7.4圖圖片的上傳傳及圖片的的顯示7.4.1將圖片片上傳到服服務(wù)器的數(shù)數(shù)據(jù)庫中保保存1.保存圖圖片的字段段類型數(shù)據(jù)庫中的的數(shù)據(jù),最最終是保存存在某個數(shù)數(shù)據(jù)表中。。用于保存存圖片的字字段類型根根據(jù)數(shù)據(jù)庫庫的種類不不同而有所所區(qū)別,對對于Access應(yīng)應(yīng)定義為““OLE對對象”類型型,對于SQLServer數(shù)據(jù)庫則則為Image類型型。2.圖片上上傳與圖片片數(shù)據(jù)的獲獲取方法利用表單的的File對象實現(xiàn)現(xiàn)圖形數(shù)據(jù)據(jù)的上傳。。在服務(wù)器器端的處理理頁面中,,利用Request對象的的BinaryRead方法法獲取表單單所提交的的數(shù)據(jù),然然后通過一一定的處理理獲取真正正的圖形數(shù)數(shù)據(jù),利用用FIELDS對象象的AppendChunk方法將圖圖片數(shù)據(jù)保保存到相應(yīng)應(yīng)字段中。。1、獲取表表單提交的的圖片數(shù)據(jù)據(jù)利用Request對象的BinaryRead方法完完成二進制制數(shù)據(jù)的讀讀?。篟equest.BinaryRead(n)其其中n代表要讀讀取的字節(jié)節(jié)數(shù)。N=Request.TotalBytes2、將讀出出的二進制制圖片數(shù)據(jù)據(jù)寫入表中中對應(yīng)字段段中利用Fields對對象的Append

溫馨提示

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

評論

0/150

提交評論