第11章ADO对象课件_第1页
第11章ADO对象课件_第2页
第11章ADO对象课件_第3页
第11章ADO对象课件_第4页
第11章ADO对象课件_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第11章

ADO对象11.1ADO概述11.2Connection对象11.3Command对象11.4RecordSet对象11.5Fields数据集合和Field对象11.6Properties数据集合和Property对象11.7Parameters数据集合与Parameter对象11.8Errors数据集合和Error对象本章学习目标l

ADO中各个对象、数据集合间的关系l

Connection对象的方法和属性l

Command对象的方法和属性l

RecordSet对象的方法和属性l

Fields数据集合和Field对象的方法和属性l

Properties数据集合和Property对象的方法和属性l

Parameters数据集合与Parameter对象的方法和属性l

Errors数据集合和Error对象的方法和属性11.1ADO概述11.1.1ADO的七个对象11.1.2ADO的四个数据集合11.1.3ADO对象与数据集合之间的关系返回首页11.1.1ADO的七个对象(1)Connection对象用于创建ASP脚本和指定数据库的连接。

(2)Command对象负责对数据库提供请求,也就是传递指定的SQL命令。

(3)Parameter对象负责传递Command对象所需要的SQL命令参数。

(4)RecordSet对象负责浏览与操作从数据库中取得的数据,也就是说RecordSet对象可以用来表示来自基本表或命令执行结果的记录全集。(5)Field对象表示指定RecordSet对象的数据字段。

(6)Property对象表示ADO的各项对象属性值,每个ADO对象都会有一个描述或控制对象行的属性。(7)Error对象负责记录连接过程中所有发生的错误信息,任何涉及ADO对象的操作都会生成一个或多个提供者错误。

返回本节11.1.2ADO的四个数据集合(1)Fields数据集合。

(2)Properties数据集合。(3)Parameters数据集合。

(4)Errors数据集合。

返回本节11.1.3ADO对象与数据集合之间的关系ADO的7个对象和4个数据集合之间的关系如下图11-1所示。

返回本节11.2Connection对象11.2.1Connection对象的方法11.2.2Connection对象的属性11.2.3Connection对象的数据集合返回首页11.2.1Connection对象的方法1.Open方法Connection对象的Open方法负责创建与数据源的连接,语法如下:connection.OpenConnectionString,UserID,Password(1)通过ODBC连接。

(2)通过OLEDB连接。

数据库种类ODBC驱动程序名称MSAccess

DatabaseMicrosoftAccessDriver(*.mdb)DBASEFilesMicrosoftdBaseDriver(*.dbf)VisualFoxProDatabaseMicrosoftVisualFoxProDriver文本文件MicrosoftTextDriver(*.txt)MicrosoftSQLServerSQLServerOracleDatabaseServerMicrosoftODBCForOracleMicrosoftFoxProMicrosoftFoxProDriver(*.dbf)表11-1常用的ODBC驱动程序设置字符串例11-1:<%'利用Server对象的CreateObject方法建立Connect对象Setconn=Server.CreateObject("ADODB.Connection")'打开数据库,建立连接。DSN表示在控制面板设置的DSN名称'UID表示用户帐号,PWD表示密码,Database指定数据库conn.Open"DSN=txl;UID=sa;PWD=;Database=txl"Response.Write"连接成功!<BR>"'断开连接Setconn=nothingResponse.Write"断开连接!"%>例11-2:<%Setconn=Server.CreateObject("ADODB.Connection")'设置连接字符串。Driver表示数据库的驱动程序,DBQ表示数据库的位置。UID表示用户帐号,PWD表示密码strProvider="Driver={SQLServer};DBQ="&_

Server.MapPath("\")&"\dagl.mdb;UID=sa;PWD=;"'打开数据库,建立连接。conn.Open

strProviderResponse.Write"连接成功!<BR>"'断开连接Setconn=nothingResponse.Write"断开连接!"%>2.Execute方法Execute方法是执行指定的查询、SQL语句、存储过程或特定提供者的文本等内容,语法如下:对于没有返回结果的命令格式:connection.ExecuteCommandText,RecordsAffected,Options对于有返回结果的命令格式:SetrecordSet=connection.Execute(CommandText,RecordsAffected,Options)该方法返回一个RecordSet对象。常量说明AdCmdText指示被执行的字符串包含一个命令文本AdCmdTable指示被执行的字符串包含一个表的名字AdCmdStoredProc指示被执行的字符串包含一个存储过程名AdCmdUnknown指示CommandText参数中的命令类型未知(默认值)表11-2Execute方法的Options参数例11-3:<!--#includefile="adovbs.inc"--><%'利用Server对象的CreateObject方法建立Connect对象。Setconn=Server.CreateObject("ADODB.Connection")'打开连接数据库strProvider="Driver={SQLServer};Server=zjf;Database=txl;UID=sa;PWD=;"conn.Open

strProvider

'修改表t_student中的数据。Commandtext="Updatet_studentSett_score=85Wheret_name='赵二'"conn.Execute

commandtext,recordsAffected,adcmdtext'显示执行命令时影响的记录数Response.WriterecordsAffectedSetconn=nothing%>例11-4:<!--#includevirtual="adovbs.inc"--><%'利用Server对象的CreateObject方法建立Connect对象。Setconn=Server.CreateObject("ADODB.Connection")'打开连接数据库strProvider="Provider=sqloledb;DataSource=zjf;InitialCatalog=txl;UserID=sa;Password=;"conn.Open

strProvider'建立查询,下面表示选择t_student表的所有项。Command="select*fromt_student"'执行查询。rs是RecordSet对象。Setrs=conn.Execute(command,recordsAffected,adcmdtext)'断开连接Setconn=nothing%>3.Close方法使用Close方法可关闭Connection对象或RecordSet对象以便释放所有关联的系统资源。关闭对象并非将它从内存中删除,可以更改它的属性设置并且在此后再次打开。要将对象从内存中完全删除,可将对象变量设置为Nothing。语法如下:Connection.close4.BeginTrans,CommitTrans和RollbackTrans方法其中BeginTrans表示开始新事务;CommitTrans表示保存任何更改并结束当前事务,它也可能启动新事务;RollbackTrans表示取消当前事务中所作的任何更改并结束事务,它也可能启动新事务。其语法如下:level=connetion.BeginTrans()connection.BeginTransconnection.CommitTransconnection.RollbackTransConnection对象事务处理的典型用法如下:<%'利用Server对象的CreateObject方法建立Connect对象。Setconn=Server.CreateObject("ADODB.Connection")'打开连接数据库strProvider=...conn.Open

strProvider'开始一个新的事物conn.BeginTrans'执行数据库的操作conn.Execute...'判断是否提交事物if...then

conn.CommitTranselse

conn.RollbackTransendif%>返回本节11.2.2Connection对象的属性1.CommandTimeout属性与ConnectionTimeout属性2.ConnectionString属性3.Provider属性4.Mode属性5.其他属性例11-5:<%Setconn=Server.CreateObject("ADODB.Connection")'设置Provide属性,该属性可以用来管理Access数据库conn.Provider="Microsoft.Jet.OLEDB.4.0"'利用ConnecString属性的FileName参数conn.Open

Server.MapPath("dagl.mdb")%>参数值说明AdModeUnknown默认值。表明权限尚未设置或无法确定AdModeRead表明权限为只读AdModeWrite表明权限为只写AdModeReadWrite表明权限为读/写AdModeShareDenyRead防止其他用户使用读权限打开连接AdModeShareDenyWrite防止其他用户使用写权限打开连接AdModeShareExclusive防止其他用户打开连接AdModeShareDenyNone防止其他用户使用任何权限打开连接表11-3Connection对象的Mode属性返回本节11.2.3Connection对象的数据集合例11-6:<%Setconn=Server.CreateObject("ADODB.Connection")conn.Provider="Microsoft.jet.oledb.4.0"conn.Open

Server.MapPath("dagl.mdb")'建立一个表,把属性的结果保存到表中。Response.Write"<TABLEborder=3>"Response.Write"<TR><TD>相关属性</TD>"Response.Write"<TD>属性值</TD>"Response.Write"</TR>"'把属性值填入表中。ForeachitemInpertiesResponse.Write"<TR><TD>"&&"</TD>"Response.Write"<TD>"&item.value&"</TD></TR>"NextResponse.Write"</TABLE>"Setconn=nothing%>图11-2取得Connection对象的属性值返回本节11.3Command对象11.3.1Command对象的属性11.3.2Command对象的方法返回首页11.3.1Command对象的属性1.ActiveConnection属性2.CommandText属3.CommandType属性4.CommandTimeout属性5.State属性6.Prepared属性常量说明AdCmdText指定CommandText的类型为SQL命令AdCmdTable指定CommandText的类型为数据库表的名称AdCmdStoredProc指定CommandText的类型为存储过程名称AdCmdUnknown默认值。CommandText属性中的命令类型未知表11-4Command对象的CommandType属性返回本节11.3.2Command对象的方法1.CreateParamete方法该方法可以创建新的Parameter对象。使用CreateParameter方法指定参数名称、类型、方向、大小和值,创建新的Parameter对象,在参数中传送的所有值都将写入相应的

Parameter属性。其语法如下:Setparameter=command.CreateParameter(Name,Type,Direction,Size,Value)`常量参数值说明AdParamUnknown0指示参数方向未知AdParamInput1默认值。指示输入参数AdParamOutput2指示输出参数AdParamInputOutput3指示输入/输出参数AdParamReturnValue4指示返回值表11-5Direction参数的取值2.Execute方法该方法与Connection对象的Execute方法相似,都是负责运行指定的SQL命令或存储过程。语法如下:有返回结果的语法:SetrecordSet=command.Execute(RecordsAffected,Parameters,Options)没有返回的的语法:command.ExecuteRecordsAffected,Parameters,Options返回本节11.4RecordSet对象11.4.1RecordSet对象的方法11.4.2RecordSet对象的属性11.4.3RecordSet对象数据集合返回首页11.4.1RecordSet对象的方法1.Open方法使用Open方法可以打开代表数据表、查询结果或者以前保存的RecordSet中记录的游标(指向数据库数据的位置,即指针),也就是说可以与数据库建立连接。语法如下:recordSet.OpenSource,ActiveConnection,CursorType,LockType,Options常量参数值说明AdOpenForwardOnly0使用前向类型游标,只能在记录集中向前移动(默认值)AdOpenKeySet1使用键集类型游标,可以在记录集中向前或向后移动。如果其他用户删除或改变了某条记录,记录集中将反映这个变化。但是,如果其他用户添加了一条新记录,新记录将不会出现在记录集中AdOpenDynamic2使用动态类型游标,可以在记录集中向前或向后移动。对于其他用户造成的任何记录的变化都将在记录集中有所反映AdOpenStatic3使用静态类型游标,可以在记录集中向前或向后移动。不会对其他用户造成的任何记录的变化有所反映表11-6RecordSet对象的CursorType参数常量参数值说明AdLockReadOnly0只读。不能改变数据(默认值)。AdLockPessimistic1保守式锁定(逐个)。指定在编辑一个记录时立即锁定它。AdLockOptimistic2开放式锁定(逐个)。数据库使用开放式锁定,只在调用Update方法时才锁定记录AdLockBatchOptimistic3开放式批更新。用于批更新模式。表11-7RecordSet对象的LockType参数常量参数值说明AdCmdUnknown-1指示Source参数中的命令类型为未知AdCmdText1指示被执行的字符串包含一个命令文本AdCmdTable2指示被执行的字符串包含一个表的名字AdCmdStoredProc3指示被执行的字符串包含一个存储过程名表11-8RecordSet对象的Options参数2.Close方法Close方法用来关闭所指定的RecordSet对象,语法如下:RecordSet.Close

3.MoveFirst,MoveLast,MoveNext,MovePrevious,Move方法这些方法都是用来移动记录指针的,通过使用这些方法可以根据实际情况方便地将记录指针移动到所要的位置。l

MoveFirst:将指针移动到RecordSet对象的第一条记录。l

MoveLast:将指针移动到最后一条数据记录。l

MoveNext:将指针移动到下一条数据记录。l

MovePrevious:将指针移动到上一条数据记录。l

Move:将指针移动到指定位置。

常量常数值说明AdBookmarkCurrent0默认。从当前记录开始AdBookmarkFirst1从首记录开始AdBookmarkLast2从尾记录开始表11-9RecordSet对象的Move方法4.Update,CancelUpdate,CancelBatch,UpdateBatch方法这些方法是用来更新或取消更新的,其中:l

Update:用于将RecordSet对象中当前记录的修改保存到数据库中。l

CancelUpdate:取消在调用Update方法前所做的修改。l

UpdateBatch:进行批次模式的更新数据操作。l

CancelBatch:允许取消批次模式的更新数据操作。常量常数值说明AdAffectCurrent1表示只对当前记录指针位置的数据执行更新操作AdAffectGroup2表示只对符合Filter属性的数据执行更新操作注意必须将Filter属性设置为某个有效的预定义常量才能使用该选项AdAffectAll3表示对当前RecordSet对象内中所有已修改的数据执行更新操作(默认值)表11-10RecordSet对象的Affectrecords参数5.AddNew,Delete方法AddNew方法用来向数据库中插入一条新记录;Delete方法用于从数据库中删除指定的记录。语法如下:RecordSet.AddNewRecordSet.Delete6.NextRecordSet方法NextRecordSet方法允许清除当前RecordSet对象,并通过提前执行命令序列返回下一个记录集,通常应用于多重数据查询。语法如下:SetrecordSet2=recordSet1.NextRecordSet(RecordsAffected)7.Requery方法Requery方法用于重新运行第一次创建的RecordSet命令或声明,所有已存在RecordSet对象内的数据都会在执行Requery方法后被重新更新。调用该方法等于相继调用Close和Open方法。语法如下:recordSet.RequeryOptions8.Clone方法Clone方法可以创建出多个RecordSet对象副本,这些完全相同的RecordSet对象是共享数据服务器的内部快照数据,也就是说内容相同。这对于希望在给定的记录集中保留多个当前记录是十分有用。Clone方法的使用与初始定义相同,但比定义创建和打开新RecordSet对象要有效得多,新创建副本的当前记录将设置为首记录。常量说明AdLockUnspecIfied使用与原始类型相同的锁定类型创建副本(默认值)AdLockReadOnly副本创建为只读表11-11LockType参数9.GetRows方法GetRows方法可以取得多条记录。使用GetRows方法可将记录从RecordSet复制到二维数组中,第一个下标标识字段,第二个下标则标识记录号。当GetRows方法返回数据时,数组变量将自动调整到正确大小。语法如下:Array=recordSet.GetRows(Rows,Start,Fields)常量说明AdBookmarkCurrent从当前记录开始AdBookmarkFirst从首记录开始AdBookmarkLast从尾记录开始表11-12Start参数的取值10.其他方法其他方法,如Resync用来设置与数据库服务器同步的更新模式;Supports方法可以用来判别RecordSet对象支持的功能。语法如下:RecordSet.Resync

AffectRecordsBooleanvalue=RecordSet.Supports(CursorOptions)Resync方法的参数AffectRecords表示进行数据更新的条件;Supports方法的参数CursorOptions表示可支持的功能。返回本节11.4.2RecordSet对象的属性1.ActiveConnection属性2.Source属性3.CursorLocation,Bookmark属性4.CursorType属性5.LockType属性6.RecordCount,MaxRecords,CacheSize属性7.BOF,EOF属性8.PageSize,PageCount,AbsolutePage,AbsolutePosition属性9.EditMode属性10.Filter属性11.State,Status属性例11-11:<!--#includevirtual="adovbs.inc"--><%'建立Connect对象Setconn=Server.CreateObject("ADODB.Connection")'打开数据库,建立连接strProvider="Provider=sqloledb;DataSource=zjf;InitialCatalog=txl;UserID=sa;Password=;"conn.Open

strProvider'建立RecordSet对象,启动指定的数据表Setrs=Server.CreateObject("ADODB.RecordSet")rs.Open"t_student",conn,adOpenKeySet,adLockOptimistic'输出记录总数Response.Writers.Recordcount'断开连接rs.CloseSetconn=nothing%>常量常数值说明AdPosUnknown-1为空,当前位置未知,或者提供者不支持AbsolutePage

属性AdPosBOF-2当前记录指针位于BOF,即BOF属性为TrueAdPosEOF-3当前记录指针位于EOF,即EOF属性为True表11-13AbsolutePage属性和AbsolutePosition属性的特殊取值常量参数值说明AdEditNone0指示当前没有编辑操作AdEditInProgress1指示当前记录中的数据已被修改但未保存AdEditAdd2指示AddNew方法已被调用,且复制缓冲区中的当前记录是尚未保存到数据库中的新记录AdEditDelete3指示当前记录已被删除表11-14EditMode属性的取值常数参数值说明AdFilterNone0删除当前筛选条件并恢复查看的所有记录AdFilterPendingRecords1允许只查看已更改且尚未发送到服务器的记录。只能应用于批更新模式AdFilterAffectedRecords2允许只查看上一次Delete,Resync,UpdateBatch或CancelBatch调用所影响的记录AdFilterFetchedRecords3允许查看当前缓冲区中的记录,即上一次从数据库中检索记录的调用结果AdFilterConflictingRecords4允许查看在上一次批更新中失败的记录表11-15Filter属性的取值返回本节11.4.3RecordSet对象数据集合RecordSet对象的数据集合包括Fields数据集合和Properties数据集合。Fields数据集合中包括RecordSet对象的所有Field数据字段对象;Properties数据集合包含RecordSet对象的所有属性。关于数据集合的内容将在后面介绍。返回本节11.5Fields数据集合和Field对象11.5.1Fields数据集合11.5.2Field对象的属性11.5.3Field对象的方法返回首页11.5.1Fields数据集合Fields数据集合提供的方法和属性包括Count属性、Refresh方法和Item方法,其中:l

Count属性用来取得Fields数据集合中所包含的Field对象的数目。l

Refresh方法用于刷新记录,可以重新取得Fields数据集合中所包含的Field对象。l

Item方法用于利用Field对象的索引值(Index)得到某一个Field对象,这个索引值通常介于0到Count属性值-1之间。返回本节11.5.2Field对象的属性l

Name属性表示对象属性的名称。l

Value属性表示对象属性的属性值。l

Type属性表示对象属性的数据类型。l

Attribute属性表示对象的特性。l

NumericScale属性表示数据字段允许存储的数字个数。l

Precision属性表示数据字段所允许的最大数字。l

ActualSize属性表示数据字段的数据长度。l

DefinedSize属性表示数据字段在数据库中所定义的长度。l

OriginalValue属性表示数据字段是从第一次启动或是在调用Update方法前的值。l

UnderlyingValue属性表示数据库中Field对象的当前值。语法如下:String=Field.NameVariant=Field.ValueDataType=Field.TypeLongInt=Filed.AttributesByte=Field.NumericScaleByte=Field.PrecisionLong=Field.ActualSizeLong=Field.DefinedSizeVariant=Field.DefinedSizeVariant=Field.OriginalValueVariant=Field.UnderlyingValue返回本节11.5.3Field对象的方法Field对象的方法包括AppendChunk,GetChunk等。AppendChunk方法和GetChunk方法是用来专门处理text,image等数据类型的,其中:AppendChunk方法用于将数据写到数据库中;GetChunk方法用于将数据从数据库中取出。语法如下:Field.AppendChunkdataVariant=field.GetChunk(size)图11-4Field对象各属性返回本节11.6Properties数据集合和Property对象11.6.1Properties数据集合11.6.2Property对象返回首页11.6.1Properties数据集合Properties数据集合是包含特定对象实例的所有Property对象,有时候也称为Properties数据集合对象。包括Count属性、Refresh方法和Item方法等。语法如下:LongInt=Properties.countProperties.RefreshSetProperty=Properties.Item(Index)或SetProperty=Properties(Index)返回本节11.6.2Property对象Property对象主要是用来记录相应ADO对象的每一项属性值,包括Name,Value,Type和Attributes等属性。语法如下:String=Property.NameVariant=Property.ValueDataType=Property.typeLongInt=Property.Attributes例11-14:<%Setconn=Server.CreateObject("ADODB.Connection")conn.Open"DSN=dagl;"'显示属性内容Response.Write"<TABLEborder=3>"Response.Write"<TR><TD>Name属性</TD>"Response.Write"<TD>Type属性</TD>"Response.Write"<TD>Attributes属性</TD>"Response.Write"<TD>Value属性</TD></TR>"Fori=0Toperties.count-1

Response.Write"<TD>"&perties.item(i).type&"</TD>"Response.Write"<TD>"&perties(i).attributes&"</TD>"Response.Write"<TD>"&perties(i).value&"</TD></TR>"Next'断开连接。Setconn=nothing%>运行结果如图11-5所示。图11-5Connection对象各属性返回本节11.7Parameters数据集合与Parameter对象11.7.1Parameters数据集合11.7.2

Parameter对象返回首页11.7.1Parameters数据集合在Command对象中,有很多个Parameter子对象可以用来存储参数,这些Parameter对象都收集在Parameters集合中。该集合包括Count属性、Append方法、Delete方法、Refresh方法和Item方法。语法如下:LongInt=Parameters.CountParameters.AppendParameterParameters.DeleteIndexParameters.RefreshSetParameter=Parameters.(Index)或SetParameter=Parameters.item(index)返回本节11.7.2Parameter对象Parameter对象负责记录程序中要传递参数的相关属性。Parameter对象提供了Name,Value,Type和Attribute等属性。语法如下:String=Parameter.NameVariant=Parameter.ValueDataType=Parameter.TypeLongInt=Parameter.Attributes例11-15:<!--#includevirtual="adovbs.inc"--><%Setconn=Server.CreateObject("ADODB.Connection")strProvider="Provider=sqloledb;DataSource=zjf;InitialCatalog=txl;UserID=sa;Password=;"conn.Open

strProviderSetcomm=Server.CreateObject("ADODB.Command")comm.ActiveConnection=connmandtext="select*fromt_student"mandtype=adCmdTextcomm.prepared=True'建立Parameters集合Setparams=comm.parameters'建立一个Parameter对象Setparam=comm.CreateParameter("t_name",adVarChar,adParamInput,6,"张三")Params.Append

paramResponse.Write"Command对象有"¶ms.count&"个Parameter对象。<br>"comm.ExecuteResponse.Write"<TABLEborder=3>"Response.Write"<TR><TD>name属性</TD>"Response.Write"<TD>type属性</TD>"Response.Write"<TD>attributes属性</TD>"Response.Write"<TD>value属性</TD></TR>"'显示Parameter对象的属性值Fori=0ToParams.count-1Response.Write"<TR><TD>"¶ms(i).name&"</TD>"Response.Write"<TD>"¶ms(i).type&"</TD>"Response.Write"<TD>"¶ms(i).attributes&"</TD>"Response.Write"<TD>"¶ms(i).value&"</TD></TR>"NextResponse.Write"</TABLE>"Setconn=nothing%>运行程序,如图11-6所示。图11-6Parameter对象属性值返回本节11.8Errors数据集合和Error对象11.8.1Errors数据集合11.8.2Error对象返回首页11.8.1Errors数据集合Errors数据集合,也称Errors数据集合对象,包含在响应涉及提供者的单个失败时产生的所有Error对象。包括Count属性、Clear方法和Item方法。语法如下:LongInt=Errors.CountErrors.clearSetErr=Errors.Item(Index)或SetErr=Errors(Index)返回本节11.8.2Error对象Error对象负责记录存储一个系统运行时发生的错误或警告。Error对象提供了Description,Number,Source,NativeErro,SQLState,HelpContext和HelpFile等属性。语法如下:String=Error.DescriptionLongInt=Error.NumberString=Error.SourceLongInt=Error.NativeErrorString=Error.SQLStateString=Error.HelpContextString=Error.HelpFile名称取值含义AdErrBoundToCommand3707表示

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论