數(shù)據(jù)訪問精選教程_第1頁
數(shù)據(jù)訪問精選教程_第2頁
數(shù)據(jù)訪問精選教程_第3頁
數(shù)據(jù)訪問精選教程_第4頁
數(shù)據(jù)訪問精選教程_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、ADO.NET基礎(chǔ)基本ADO.NET類數(shù)據(jù)綁定數(shù)據(jù)訪問數(shù)據(jù)訪問問(1)數(shù)據(jù)訪問問就是對(duì)對(duì)數(shù)據(jù)庫庫中的數(shù)數(shù)據(jù)進(jìn)行行CRUD操作:Create(創(chuàng)建)、Retrieve(檢索)、Update(更新)和Delete(刪除)。主流的數(shù)數(shù)據(jù)訪問問技術(shù)根根據(jù)開發(fā)發(fā)平臺(tái)的的不同主主要分為為兩個(gè)體體系:微微軟體系系和Java體系。微軟體系系ODBC(Open Database Connectivity):開放放數(shù)據(jù)庫庫互聯(lián)DAO(Data AccessObjects):數(shù)據(jù)據(jù)訪問對(duì)對(duì)象RDO(RemoteDataObject):遠(yuǎn)程程數(shù)據(jù)對(duì)對(duì)象OLEDB(ObjectLinkingandEmbedding d

2、atabase):對(duì)象象鏈接和和嵌入數(shù)數(shù)據(jù)庫ADO(ActiveX DataObjects):是一個(gè)用用于存取取數(shù)據(jù)源源的COM組件ADO.NET:微軟在在.NET框架中提提出的全全新的數(shù)數(shù)據(jù)訪問問模型LINQ to SQL和ADO.NET EF(EntityFramework):微軟軟下一代代基于ADO.NET之上構(gòu)建建的類似似ORM技術(shù)的高高層數(shù)據(jù)據(jù)訪問技技術(shù)數(shù)據(jù)訪問問(2)Java體系JDBC(Java Database Connectivity):Java數(shù)據(jù)庫連連接Hibernate:一個(gè)開開源的數(shù)數(shù)據(jù)訪問問ORM中間件JDO:Java數(shù)據(jù)對(duì)象象(JDO)是一個(gè)存存儲(chǔ)Java對(duì)象的規(guī)

3、規(guī)范ADO與ADO.NET重點(diǎn)比較較一下ADO和ADO.NET:ADO以Recordset存儲(chǔ),而而ADO.NET則以DataSet表示。Recordset看起來更更像單張張數(shù)據(jù)表表;而DataSet可以是多多個(gè)表的的集合。ADO的運(yùn)作是是在線方方式,即即不論是是瀏覽還還是更新新數(shù)據(jù)都都必須是是實(shí)時(shí)的的;而ADO.NET則使用離離線方式式,在訪訪問數(shù)據(jù)據(jù)的時(shí)候候ADO.NET會(huì)導(dǎo)入并并以XML格式維護(hù)護(hù)數(shù)據(jù)的的一份副副本,ADO.NET的數(shù)據(jù)庫庫連接也也只有在在這段時(shí)時(shí)間需要要在線。此外,由由于ADO使用COM技術(shù),這這就要求求所使用用的數(shù)據(jù)據(jù)類型必必須符合合COM規(guī)范,而而ADO.NET基于

4、XML格式,數(shù)數(shù)據(jù)類型型更為豐豐富并且且不需要要再做COM編排導(dǎo)致致的數(shù)據(jù)據(jù)類型轉(zhuǎn)轉(zhuǎn)換,從從而提高高了整體體性能。ADO.NET基礎(chǔ)Microsoft在開始設(shè)設(shè)計(jì).NET框架時(shí),對(duì)于數(shù)數(shù)據(jù)訪問問的技術(shù)術(shù),沒有有進(jìn)一步步擴(kuò)展ADO,而是設(shè)設(shè)計(jì)了一一個(gè)新的的數(shù)據(jù)訪訪問框架架ADO.NET,只是保保留了ADO這個(gè)縮寫寫詞。ADO.NET相對(duì)ADO來說,具具有如下下3個(gè)方面的的優(yōu)點(diǎn):(1)提供了了斷開的的數(shù)據(jù)訪訪問模型型,這對(duì)對(duì)Web環(huán)境至關(guān)關(guān)重要。(2)提供了了與XML的緊密集集成。(3)提供了了與.NET框架的無無縫集成成(例如如,兼容容基類庫庫類型系系統(tǒng))。ADO.NET的構(gòu)架Connectio

5、nTransactionCommandParametersDataReaderDataAdapterSelectCommandDataSetDataTableCollectionDataTableDataRowCollectionDataColumnCollectionConstraintCollectionDataRelationCollectionInsertCommandUpdataCommandDeleteCommand.NET Framework Data ProviderDatabaseXML.NET數(shù)據(jù)提供供程序(.NET DataProvider)是一組組用于訪訪問特定定數(shù)據(jù)庫

6、庫,執(zhí)行行SQL命令并獲獲取值的的ADO.NET類,是應(yīng)應(yīng)用程序序與數(shù)據(jù)據(jù)源之間間的一座座橋梁。DataSet代表的是是整個(gè)數(shù)數(shù)據(jù)的集集合,包包括相關(guān)關(guān)的表、約束和和表之間間的關(guān)系系.NET數(shù)據(jù)提供供程序目前在.NET平臺(tái)中包包含如下下.NET數(shù)據(jù)提供供程序:SQLServer .NET數(shù)據(jù)提供供程序。OLEDB.NET數(shù)據(jù)提供供程序。ODBC .NET數(shù)據(jù)提供供程序。Oracle.NET數(shù)據(jù)提供供程序(需要Oracleclient的支持)。SQLite.NET數(shù)據(jù)提供供程序(非官方方,由提供)。PostgreSQL .NET數(shù)據(jù)提供供程序(非官方方,由/projec

7、ts/npgsql提供)。MySQL.NET數(shù)據(jù)提供供程序(非官方方,由/mysqlnet提供)。ADO.NET基礎(chǔ)基本ADO.NET類數(shù)據(jù)綁定定數(shù)據(jù)訪問問基本ADO.NET類ADO.NET有兩種類類型的對(duì)對(duì)象:基基于連接接的和基基于內(nèi)容容的?;谶B接接的對(duì)象象。它們是數(shù)數(shù)據(jù)提供供對(duì)象,如Connection、Command、DataAdapter和DataReader。它們執(zhí)執(zhí)行SQL語句,連連接到數(shù)數(shù)據(jù)庫,或者填填充DataSet?;谶B連接的對(duì)對(duì)象是針對(duì)具體體數(shù)據(jù)源源類型的的,并且可可以在提提供程序序指定的的命名空空間中(例如SQLServer提供程序序的System.Data.SqlC

8、lient)找到。基于內(nèi)容容的對(duì)象象。這些對(duì)象象其實(shí)是是數(shù)據(jù)的的“包”。包括括DataSet、DataColumn、DataRow、DataRelation等。它們們完全和數(shù)數(shù)據(jù)源獨(dú)獨(dú)立,出現(xiàn)在在System.Data命名空間間里。Connection類Connection類用于和和要交互互的數(shù)據(jù)據(jù)源建立立連接。在執(zhí)行任任何操作作前(包括讀取取、刪除除、新增增或者更更新數(shù)據(jù)據(jù))必須建立立連接。需要注意意的問題題:連接字符符串測試連接接連接字符符串創(chuàng)建連接接對(duì)象時(shí)時(shí),需要要提供連連接字符符串。連接字符符串包含含基本信信息:服務(wù)器位位置要使用的的數(shù)據(jù)庫庫名稱如何通過過數(shù)據(jù)庫庫驗(yàn)證。提供驗(yàn)驗(yàn)證身份份

9、或者以以當(dāng)前用用戶登錄錄。web.config文件的結(jié)點(diǎn)便于于保存連連接字符符串。如如下面這這個(gè)示例例所示:測試連接接選定連接接字符串串后,管管理連接接就很簡簡單了,只需簡簡單地使使用Open()方法和Close()方法。/創(chuàng)建Connection對(duì)象stringconnectionString=ConfigurationManager.ConnectionStrings Northwind.ConnectionString;SqlConnectioncon=newSqlConnection(connectionString);trycon.Open();/打開連接接lblInfo.Text=

10、ServerVersion: +con.ServerVersion;lblInfo.Text+=Connectionis: +con.State.Tostring();例子:catch(Exceptionerr)/顯示信息息來處理理錯(cuò)誤lblInfo.Text=Errorreadingthedatabase. +err.Message;finally/不論采用用哪種方方法都要要確保正正確關(guān)閉閉連接,/即使連接接沒有成成功打開開,調(diào)用用Close()方法也不不會(huì)產(chǎn)生生錯(cuò)誤con.Close();lblInfo.Text+=NowConnection Is:+con.State.ToString(

11、);Command類Command類可以執(zhí)執(zhí)行所有有類型的的SQL語句,一一般被用用來執(zhí)行行數(shù)據(jù)操操作任務(wù)務(wù)(如讀讀或更新新表中的的記錄)。Command對(duì)象常用用的構(gòu)造造函數(shù)包包括兩個(gè)個(gè)重要的的參數(shù):一個(gè)是要要執(zhí)行的的SQL語句另一個(gè)是是已建立立的Connection對(duì)象例如,當(dāng)當(dāng)使用MicrosoftSQL Server編程接口口時(shí):SqlCommandcmd=newSqlCommand(SELECT *FROMEmployees,con);con表示前面面已創(chuàng)建建的連接接到數(shù)據(jù)據(jù)庫的Connection對(duì)象表示要執(zhí)執(zhí)行的SQL語句Command方法方法名描 述ExecuteNonQuer

12、y()執(zhí)行非SELECT語句,如插入、刪除、更新等SQL語句。返回值顯示命令影響的行數(shù)。ExecuteScalar()執(zhí)行SELECT查詢,并返回命令位于結(jié)果記錄集第一行第一列的字段。ExecuteReader()執(zhí)行SELECT語句,并返回一個(gè)僅向前的、只讀的數(shù)據(jù)集DataReader對(duì)象,該對(duì)象連接到數(shù)據(jù)庫的結(jié)果集上,并允許行檢索。DataReader類DataReader以僅向前前、只讀讀流的方方式每次次讀取一一條SELECT命令返回回的記錄錄,提供了最最快捷且且毫無拖拖沓的數(shù)數(shù)據(jù)訪問問 。方法名描 述Read()將行游標(biāo)前進(jìn)到流的下一行。GetValue()用于指定列的整數(shù)索引,從當(dāng)前

13、行中以固定格式返回1個(gè)值或多個(gè)值GetValues()將當(dāng)前行中的值保存到數(shù)組中。GetInt32()、GetChar()和GetDateTime()這些方法返回當(dāng)前行中指定序號(hào)的字段值,返回值的類型和方法名稱中的一致NextResult()如果命令返回的DataReader包含不只一個(gè)行集,該方法將游標(biāo)移動(dòng)到下一個(gè)行集Close()關(guān)閉Reader。并釋放對(duì)行集的引用DataReader方法DataSet類DataSet是非連接接數(shù)據(jù)訪訪問的核核心。到目前為為止,前前面的示示例都使使用了ADO.NET基于連接接的特性。采用這這種方式式時(shí),只只有數(shù)據(jù)據(jù)讀取后后數(shù)據(jù)才才會(huì)和數(shù)數(shù)據(jù)源斷斷開連接接。

14、代碼碼需要負(fù)負(fù)責(zé)追蹤蹤用戶活活動(dòng)、保保存信息息并確定定何時(shí)創(chuàng)創(chuàng)建和執(zhí)執(zhí)行新的的命令。ADO.NET通過DataSet對(duì)象強(qiáng)調(diào)調(diào)了另外外一種完完全不同同的理念念。連接接數(shù)據(jù)庫庫時(shí),用用從數(shù)據(jù)據(jù)庫中獲獲得的信信息的副副本來填填充DataSet。如果修修改了DataSet中的信息息,數(shù)據(jù)據(jù)庫中相相應(yīng)表的的信息并并不會(huì)隨隨之改變變。如果果需要的的話,還還可以重重新連接接原來的的數(shù)據(jù)源源,通過過一個(gè)批批操作把把DataSet中數(shù)據(jù)的的修改應(yīng)應(yīng)用到表表中。DataSet與DataReader有些時(shí)候候,DataSet比DataReader更便于使使用,包包括下面面這些情情形:需要在大大量的數(shù)數(shù)據(jù)中前前后瀏

15、覽覽。需要在不不同的表表間導(dǎo)航航。需要通過過用戶界界面控件件綁定數(shù)數(shù)據(jù)。需要以XML方式操作作數(shù)據(jù)。需要通過過Web服務(wù)提供供批量更更新。一般而言言,在插插入、刪刪除和更更新記錄錄時(shí)不使使用DataSet,但是并并不能完完全避免免使用DataSet。由于這些些原因,多數(shù)Web程序使用用DataSet來檢索信信息,但但使用直直接的命命令執(zhí)行行更新。分解DataSetDataTableDataSet關(guān)系集合DataRelation表集合DataTable行集合DataRow子關(guān)系集合DataRelation列集合DataColumn約束集合Constraint父關(guān)系集合DataRelationDe

16、faultViewDataSet包含兩類類最重要要的元素素:零個(gè)個(gè)或多個(gè)個(gè)表的集集合(通通過Tables屬性提供供)以及及零個(gè)或或多個(gè)關(guān)關(guān)系的集集合(通通過Relation屬性提供供),關(guān)關(guān)系可以以把表連連接到一一起。DataAdapter類DataAdapter是DataSet中的表和和數(shù)據(jù)源源間的橋橋梁。它它含有查查詢和更更新數(shù)據(jù)據(jù)源所需需的全部部命令。它是提供供程序相相關(guān)的對(duì)對(duì)象,因因此每一一個(gè)提供供程序都都有一個(gè)個(gè)DataAdapter類(如SqlDataAdapter、OracleDataAdapter等)為了讓DataAdapter能夠編輯輯、刪除除或添加加行,需需要設(shè)定定Data

17、Adapter對(duì)象的InsertCommand、UpdateCommand和DeleteCommand屬性。利用DataAdapter填充DataSet,必須設(shè)設(shè)定SelectCommand。DataAdapter方法方法名描 述Fill()執(zhí)行SelectCommand中的查詢后向DataSet添加一個(gè)DataTable。如果查詢返回多個(gè)結(jié)果集,該方法將依次添加多個(gè)DataTable對(duì)象。還可以用該方法向現(xiàn)有的DataTable添加數(shù)據(jù)FillSchema()執(zhí)行SelectCommand中的查詢,但只獲取架構(gòu)信息,它向DataSet中添加一個(gè)DataTable。該方法并不往DataTabl

18、e中添加任何數(shù)據(jù)。相反,它只利用列名、數(shù)據(jù)類型、主鍵和唯一約束等信息預(yù)配置DataTableUpdate()檢查DataTable中的所有變化并執(zhí)行適當(dāng)?shù)腎nsertCommand、UpdateCommand和DeleteCommand操作為數(shù)據(jù)源執(zhí)行批量更新【例3-1】填充DataSet示例【例3-2】使用多個(gè)個(gè)表和關(guān)關(guān)系【例3-3】查找特定定的行ADO.NET基礎(chǔ)基本ADO.NET類數(shù)據(jù)綁定定數(shù)據(jù)訪問問Connection類Command類和DataReader類DataSet類DataAdapter類數(shù)據(jù)綁定定(1)ASP.NET提供了一一個(gè)豐富富全能的的數(shù)據(jù)綁綁定模型型。數(shù)據(jù)綁定定允許

19、把把獲得的的數(shù)據(jù)對(duì)對(duì)象綁定定到一個(gè)個(gè)或多個(gè)個(gè)Web控件上,接著它它們將自自動(dòng)顯示示數(shù)據(jù)。數(shù)據(jù)綁定定的關(guān)鍵鍵特征是是它是聲聲明性的的而不是是編程性性的。也也就是說說,在ASP.NET中利用數(shù)數(shù)據(jù)源控控件在頁頁面和數(shù)數(shù)據(jù)源間間定義一一個(gè)聲明明性的連連接,一一旦配置置好數(shù)據(jù)據(jù)源控件件,就可可以在設(shè)設(shè)計(jì)時(shí)將將它們“勾”到到Web控件上,然后ASP.NET將會(huì)管理理所有的的數(shù)據(jù)綁綁定細(xì)節(jié)節(jié)。配合數(shù)據(jù)據(jù)綁定模模型,ASP.NET提供了兩兩組數(shù)據(jù)據(jù)感知(data-aware)控件:數(shù)據(jù)綁定定控件(data-boundcontrol)數(shù)據(jù)源控控件(datasourcecontrol)數(shù)據(jù)綁定定(2)數(shù)據(jù)綁定定

20、控件(data-boundcontrol)包含了可可用于顯顯示和編編輯的數(shù)數(shù)據(jù)綁定定控件,如GridView、Repeater和新的ListView控件,可可分為單值數(shù)據(jù)據(jù)綁定和重復(fù)值綁綁定。數(shù)據(jù)源控控件(datasourcecontrol)用于從數(shù)數(shù)據(jù)源(如數(shù)據(jù)庫庫或XML文件)中檢索數(shù)數(shù)據(jù),然然后將這這一數(shù)據(jù)據(jù)提供給給數(shù)據(jù)綁綁定控件件。單值數(shù)據(jù)據(jù)綁定(1)ASP.NET中的大部部分Web控件(包包括Textbox、LinkButton、Image以及其他他很多控控件)都都支持單單值數(shù)據(jù)據(jù)綁定。支持單值值數(shù)據(jù)綁綁定的控控件允許許使用數(shù)數(shù)據(jù)綁定定表達(dá)式式綁定它它們的部部分屬性性。表達(dá)式在在頁面

21、的的.aspx標(biāo)記部分分輸入(不是在在后臺(tái)代代碼中),并由由分隔符包包含。語語法:頁面運(yùn)行行時(shí)為了了計(jì)算這這樣的數(shù)數(shù)據(jù)綁定定表達(dá)式式,必須須在代碼碼中調(diào)用用Page.DataBind()方法。如下所示示:protectedvoidPage_Load(objectsender,EventArgse)this.DataBind();單值數(shù)據(jù)據(jù)綁定(2)單值數(shù)據(jù)據(jù)綁定的的源可以以是屬性性的值、成員變變量或函函數(shù)的返返回值。它還可以以是其他他運(yùn)行時(shí)時(shí)可計(jì)算算的表達(dá)達(dá)式,如如對(duì)其他他控件屬屬性的引引用,使使用操作作符和文文本的計(jì)計(jì)算或者者其他。例如:數(shù)據(jù)綁定定表達(dá)式式幾乎可可以放在在頁面的的任何地地方,

22、通通常在控控件標(biāo)簽簽中把數(shù)數(shù)據(jù)綁定定表達(dá)式式賦給屬屬性。單值數(shù)據(jù)據(jù)綁定(3)下面是幾幾個(gè)使用用數(shù)據(jù)綁綁定表達(dá)達(dá)式的例例子:/綁定Label的Text屬性asp:LabelID=label1runat=serverText=/也可以直直接將數(shù)數(shù)據(jù)綁定定表達(dá)式式放到頁頁面,不不綁定到到任何屬屬性或特特性/綁定靜態(tài)態(tài)HTML的標(biāo)記的src特性imgsrc=上面的例例子中表表達(dá)式引引用了FilePath屬性、GetFilePath()函數(shù),因因此還要要在腳本本塊或代代碼隱藏藏類定義義這些項(xiàng)項(xiàng)目:單值數(shù)據(jù)據(jù)綁定(4)protectedstringGetFilePath()returnapress.gif

23、;protectedstringFilePathgetreturnapress.gif;重復(fù)值綁綁定重復(fù)值綁綁定可以以一次把把整整一一個(gè)列表表的信息息綁定到到控件上上。ASP.NET帶有幾個(gè)個(gè)支持重重復(fù)值綁綁定的基本列表表控件。所有用標(biāo)記呈現(xiàn)現(xiàn)的控件件,包括括HtmlSelect、ListBox和DropDownList控件。CheckBoxList和RadioButtonList控件,它它們的每每個(gè)子項(xiàng)項(xiàng)呈現(xiàn)為為獨(dú)立的的復(fù)選框框或單選選按鈕BulletedList控件,它它創(chuàng)建一一系列列列表或編編號(hào)?!纠?-4】填充列表表框示例例除了簡單單的列表表控件外外,ASP.NET還支持重重復(fù)值綁綁定

24、的富數(shù)據(jù)控控件。富數(shù)據(jù)據(jù)控件擁擁有同時(shí)時(shí)顯示數(shù)數(shù)據(jù)項(xiàng)若若干屬性性或字段段的能力力,一般般基于表表或用戶戶定義的的模板來來布局,而且還還支持一一些更高高層次的的功能。富數(shù)據(jù)控控件GridViewGridView是顯示大大型表數(shù)數(shù)據(jù)的全全能網(wǎng)絡(luò)絡(luò)。支持持選擇、編輯、排序和和分頁。GridView是重型的的ASP.NET控件,也也是ASP.NET 1.x中DataGrid的替代品品。DetailsViewDetailsView是每次顯顯示一條條記錄的的理想控控件,它它顯示為為一個(gè)表表,每行行對(duì)應(yīng)一一個(gè)字段段。FormView和DetailsView類似,每每次顯示示一條記記錄。與與DetailsVi

25、ew的差別在在于它是是基于模模板的,這樣它它允許在在更為靈靈活的布布局中合合并字段段而不必必依賴表表格。ListView基于模板板的靈活活控件,最好地地組合了了GridView、DataList和Repeater。類似于于GridView,它支持持?jǐn)?shù)據(jù)編編輯、刪刪除和分分頁。像像DataList那樣,支支持多列列和多行行布局,而且像像Repeater那樣允許許完全控控制控件件生成的的標(biāo)記。ListView是ASP.NET 3.5新增的數(shù)據(jù)源控控件ASP.NET 2.0在ADO.NET的數(shù)據(jù)模模型基礎(chǔ)礎(chǔ)上進(jìn)行行了進(jìn)一一步的封封裝和抽抽象,提提出了一一個(gè)新概概念“數(shù)數(shù)據(jù)源控控件”。數(shù)據(jù)源控控件沒有

26、有可視的的外觀,它們充充當(dāng)用戶戶界面和和數(shù)據(jù)庫庫之間的的橋梁,有大量量不同的的數(shù)據(jù)源源控件,提供了了對(duì)不同同數(shù)據(jù)存存儲(chǔ)的訪訪問。數(shù)據(jù)源控控件可以以完成兩兩類任務(wù)務(wù):可以從數(shù)數(shù)據(jù)源中中讀取數(shù)數(shù)據(jù)并為為關(guān)聯(lián)的的控件提提供數(shù)據(jù)據(jù)在關(guān)聯(lián)的的控件編編輯數(shù)據(jù)據(jù)后更新新數(shù)據(jù)源源數(shù)據(jù)源控控件的類類型主要有以以下幾種種:SqlDataSource??梢赃B連接到任任意擁有有ADO.NET數(shù)據(jù)提供供程序的的數(shù)據(jù)源源,包括括SQLServer、Oracle以及OLEDB或者ODBC數(shù)據(jù)源。ObjectDataSource??梢赃B連接到自自定義的的數(shù)據(jù)訪訪問對(duì)象象。大型型專業(yè)Web應(yīng)用程序序傾向使使用此數(shù)數(shù)據(jù)源控控件。AccessDataSource。可以連連接到Access數(shù)據(jù)庫文文件(.mdb)。XmlDataSource??梢赃B連接到XML文件。SiteMapDataSourc

溫馨提示

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

評(píng)論

0/150

提交評(píng)論