




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 ADO是是Active Data Object缩写,是针缩写,是针对当前对当前Microsoft软件所支持的数据进行操软件所支持的数据进行操作的最有效、最简单、功能最强大的方法。作的最有效、最简单、功能最强大的方法。它能自如地控制数据的显示、查询以及对它能自如地控制数据的显示、查询以及对数据的修改、删除和添加。通过本章学习,数据的修改、删除和添加。通过本章学习,应该掌握以下内容:应该掌握以下内容: ADO各种对象和集合各种对象和集合 1. 利用利用ADO存取组件进行数据库连接存取组件进行数据库连接利用利用Dreamweaver编辑各种超连接的方法编辑各种超连接的方法 第第12章章 利用利用A
2、DO实现网页与实现网页与数据库的链接数据库的链接 山东新华电脑学院12.1 利用利用ADO编写新闻发布系统编写新闻发布系统 新闻发布系统能带给浏览者许多的方便,就像布告栏一新闻发布系统能带给浏览者许多的方便,就像布告栏一样,可以让在校师生和外界单位了解学校当天或是最近发样,可以让在校师生和外界单位了解学校当天或是最近发生的大事,以及公布短期内学校的主要工作计划等等。生的大事,以及公布短期内学校的主要工作计划等等。 具体来说,使用具体来说,使用ADOADO数据库链接技术来完成输入新闻数据库链接技术来完成输入新闻和查看新闻,需要用链接对象的和查看新闻,需要用链接对象的OpenOpen方法来建立数据
3、库链方法来建立数据库链接,用链接对象的接,用链接对象的ExecuteExecute方法来执行方法来执行SQLSQL查询语句和操作查询语句和操作命令(把新闻信息保存到数据库、或者从数据库中查找新命令(把新闻信息保存到数据库、或者从数据库中查找新闻信息),还需要使用闻信息),还需要使用ADOADO记录集来显示新闻(把数据库记录集来显示新闻(把数据库中找出来的新闻以一定的格式显示到新闻发布系统)。中找出来的新闻以一定的格式显示到新闻发布系统)。 书上书上给出了示例中新闻发布系统得源代码以及一些给出了示例中新闻发布系统得源代码以及一些解释。解释。 12.2 ADO概述概述 ADO定义了三个一般对象:定
4、义了三个一般对象:Connection对象、对象、Command对象对象和和Recordset对象,通过这三个对象,用户可以方便地建立数据库连对象,通过这三个对象,用户可以方便地建立数据库连接、执行接、执行SOL查询及存取查询的结果。查询及存取查询的结果。 下面列出了下面列出了ADO的重要接口:的重要接口: Connection (连接):该对象代表打开的文件与数据源的连接。(连接):该对象代表打开的文件与数据源的连接。 Error(错误集):包含在响应涉及提供者的单个失败时产生(错误集):包含在响应涉及提供者的单个失败时产生的所有的所有Error对象。对象。 Command(命令):该对象定
5、义了对数据源执行的指定命令。(命令):该对象定义了对数据源执行的指定命令。 Parameter(参数):这个接口表示传给(参数):这个接口表示传给Command的参数。的参数。 Recordset(游标):这是功能最强大但最复杂的接口,它含有(游标):这是功能最强大但最复杂的接口,它含有包含数据的游标。用户可使用包含数据的游标。用户可使用Recordset对象操作来自提供者的数据。对象操作来自提供者的数据。 Field(字段):该接口表示(字段):该接口表示Recordset对象中的某一列数据,对象中的某一列数据,同时能返回游标对象的一些关于数据本身的属性和参数。同时能返回游标对象的一些关于数
6、据本身的属性和参数。 Property(属性):包含特定对象实例的所有(属性):包含特定对象实例的所有Property对象。对象。 12.3 Connection对象对象 Connection对象是数据源的一个开放连接。它跟踪正在使用的对象是数据源的一个开放连接。它跟踪正在使用的DSN连接保持的时间以及其他定义的数据库的属性。连接保持的时间以及其他定义的数据库的属性。 12.3.1 Connection对象的方法对象的方法 1Open方法方法 Connection对象的对象的Open方法用来初始化一个连接,只有使用了方法用来初始化一个连接,只有使用了Connection对象的对象的Open方法
7、后,方法后,Connection对象才会真正存在,然对象才会真正存在,然后才能发命令对数据源产生作用。通常在使用后才能发命令对数据源产生作用。通常在使用Open方法时有如下两方法时有如下两种途径:种途径: (1)直接将连接字符串传给)直接将连接字符串传给Open方法方法 (2)利用它的)利用它的ConnectionString属性属性 2Close方法方法 当调用了当调用了Close方法后,系统就停止了同数据源之间的连接,并且方法后,系统就停止了同数据源之间的连接,并且释放与连接有关的系统资源。当调用此方法时,不只是关闭释放与连接有关的系统资源。当调用此方法时,不只是关闭Connection对
8、象,而且还关闭了其他正在使用该对象,而且还关闭了其他正在使用该Connection对象的对象的ADO对象。不过对象。不过Close方法只是释放与其相关的系统资源,方法只是释放与其相关的系统资源,Connection对象本身并没有释放。因此,一个关闭的对象本身并没有释放。因此,一个关闭的Connection对对象还可以接着用象还可以接着用Open方法打开,而不用再次创建。要真正释放所方法打开,而不用再次创建。要真正释放所有其占用的资源,只需:有其占用的资源,只需: 3BeginTrans方法方法 ADO的一个重要的功能是执行并控制数据源的事务操作。事务即的一个重要的功能是执行并控制数据源的事务操
9、作。事务即在一次操作中对数据库的多次写的动作。一次事务活动要么全部成在一次操作中对数据库的多次写的动作。一次事务活动要么全部成功,要么全部失败。使用事务的好处在于它能提供很好的机会优化功,要么全部失败。使用事务的好处在于它能提供很好的机会优化对数据源进行写操作的过程。它让对数据源进行写操作的过程。它让ADO知道任何对数据源的修改还知道任何对数据源的修改还都没有写到硬盘上,还在缓冲区中。往缓冲区中写东西要比硬盘快都没有写到硬盘上,还在缓冲区中。往缓冲区中写东西要比硬盘快得多,这样就能够大大的提高系统性能。得多,这样就能够大大的提高系统性能。 4CommitTrans方法方法 当当BeginTra
10、ns方法被调用后,数据并没有写到硬盘,所以方法被调用后,数据并没有写到硬盘,所以Connection调用调用CommitTrans方法把所有的数据写到硬盘上。该方法方法把所有的数据写到硬盘上。该方法把一次事务的操作一次全部写到硬盘上。然后就关闭此次事务。把一次事务的操作一次全部写到硬盘上。然后就关闭此次事务。 5Execute方法方法 Connection的主要任务是在最高层控制与数据源之间的交互作用,的主要任务是在最高层控制与数据源之间的交互作用,但是该对象也能执行但是该对象也能执行SQL语句及存储过程。但是利用语句及存储过程。但是利用Connection对象对象返回数据时,要抽取的信息是基
11、本的游标即只能读和只能向前的游标。返回数据时,要抽取的信息是基本的游标即只能读和只能向前的游标。 使用使用Execute方法的基本语句是:方法的基本语句是: Set myRecordset=Conn.Execute(CommandText.RecordAffected. Options) 其中:其中: CommandText:是一个字符串,它包含一个表名、或某个将被执行:是一个字符串,它包含一个表名、或某个将被执行的的SQL语句。语句。 RecordAffected:是个变量,数据提供者将它返回此次操作所影响:是个变量,数据提供者将它返回此次操作所影响的记录数。的记录数。 Options:用来
12、指定:用来指定Commandstring参数的性质。参数的性质。 6RollbackTrans方法方法 这个方法和这个方法和CommitTrans方法相反,它是取消此次事务以来对方法相反,它是取消此次事务以来对数据源所做的所有操作,并不写入数据源。同数据源所做的所有操作,并不写入数据源。同CommitTrans方法一方法一样,调用此方法,本次事务结束。样,调用此方法,本次事务结束。 12.3.2 Connection的属性的属性 Connection对象的属性是用来控制高级的数据处理。对象的属性是用来控制高级的数据处理。 1Attributes属性属性 该属性定义了对象一个或多个特点。对于该属
13、性定义了对象一个或多个特点。对于Connection对象来说,对象来说,Attributes属性控制着事务成功或失败后属性控制着事务成功或失败后Connection要如何向数据库要如何向数据库写数据。如果写数据。如果Attributes设置为设置为262144或者或者adX- actAbortRetaining的的ADODB的常量,那么如果事务被取消,另一个事务会自动启动。的常量,那么如果事务被取消,另一个事务会自动启动。 2Mode属性属性 Mode属性用来表示连接的写权限,只能在属性用来表示连接的写权限,只能在Connection对象没有打对象没有打开的情况下进行设置。开的情况下进行设置。
14、 3Version属性属性 该属性用来查询该属性用来查询ADO的版本号。的版本号。 4Provider属性属性 该属性用来设置或返回数据来源的名字。它的缺省值是该属性用来设置或返回数据来源的名字。它的缺省值是ODBC数据来源,对于数据来源,对于OLE DB,它的返回值为,它的返回值为“MSDASQL”。 5CommandTimeout属性属性 该属性定义了允许对数据源的操作终止并产生一个错误的等待该属性定义了允许对数据源的操作终止并产生一个错误的等待时间。可用它的属性来定义连接业务很大或服务器很忙时如何操作。时间。可用它的属性来定义连接业务很大或服务器很忙时如何操作。 6Connections
15、tring属性属性 该属性将返回一个字符串,它包含创建数据连接时所用的所有该属性将返回一个字符串,它包含创建数据连接时所用的所有信息。它可以是信息。它可以是DNS,也可以是连接数据源时的所有参数。,也可以是连接数据源时的所有参数。 7DefaultDatabase属性属性 使用使用DefaultDatabase属性可设置或返回指定属性可设置或返回指定Connection对象上默对象上默认数据库的名称。认数据库的名称。 如果有默认数据库,如果有默认数据库,SQL字符串可使用非限定语法访问该数据字符串可使用非限定语法访问该数据库中的对象。如要访问库中的对象。如要访问DefaultDatabase属
16、性中指定数据库以外的数属性中指定数据库以外的数据库中的对象,对象名必须与所需的数据库名称匹配。连接时,提据库中的对象,对象名必须与所需的数据库名称匹配。连接时,提供者将默认数据库信息写入供者将默认数据库信息写入DefaultDatabase属性。某些提供者对于属性。某些提供者对于每 个 连 接 只 允 许 一 个 数 据 库 , 在 此 情 况 下 将 不 能 更 改每 个 连 接 只 允 许 一 个 数 据 库 , 在 此 情 况 下 将 不 能 更 改DefaultDatabase属性。属性。 12.4 Recordset对象对象 Recordset是是ADO的一个非常重要的对象。的一个非
17、常重要的对象。ADO一半以上的文档一半以上的文档都是关于都是关于Recordset的。的。 12.4.1 Recordset方法方法 1打开、关闭和复制打开、关闭和复制Recordset的方法的方法 (1)Open方法方法 Open方法是用来打开一个给予方法是用来打开一个给予ActiveConnection和和Source属性的属性的Recordset。在把连接和原信息作为参数传给。在把连接和原信息作为参数传给Recordset的的Open方法时,游标被打开且该方法所有相应的属性值也被继承下方法时,游标被打开且该方法所有相应的属性值也被继承下来。来。 (2)Close方法方法 Close方法用
18、于关闭方法用于关闭Recordset对象并释放相关资源。对象并释放相关资源。同同Connection对象一样,在调用对象一样,在调用setRecordSet=nothing之前,它仍然之前,它仍然存在,只需要重新打开,而不需要创建。在允许关闭当前编辑的记存在,只需要重新打开,而不需要创建。在允许关闭当前编辑的记录前,必须首先调用录前,必须首先调用Cancelupdate或或Update方法,否则会出现错误。方法,否则会出现错误。但是,如果以批量模式更新记录,那么对缓冲区记录所做的修改将但是,如果以批量模式更新记录,那么对缓冲区记录所做的修改将全部丢失。全部丢失。 (3)Clone方法方法 Cl
19、one方法用来创建一个方法用来创建一个Recordset对象的完全拷贝。对象的完全拷贝。采用该方法,可以为任何采用该方法,可以为任何Recordset维持多个当前的记录。但是只有维持多个当前的记录。但是只有所用的所用的Recordset类型允许使用类型允许使用BookMa-rks时才能使用这种方法。时才能使用这种方法。 2编辑修改数据的方法编辑修改数据的方法 (1)addNew方法方法 addNew方法用来向数据库中增加新纪录。调用方法用来向数据库中增加新纪录。调用该方法时即在该方法时即在Rec-ordset中开始一个新行,并将指针移到行首以准中开始一个新行,并将指针移到行首以准备加入新的数据
20、。是效率最低的一种修改方法,最好用备加入新的数据。是效率最低的一种修改方法,最好用SQL来实现。来实现。 (2)Delete方法方法 Delete方法用来删除当前记录。它与方法用来删除当前记录。它与addNew方法方法一样效率很低,但是它能够批量删除。当在批量模式相关联的一样效率很低,但是它能够批量删除。当在批量模式相关联的Recordset中使用中使用Delete方法时,方法时,Delete方法只是将当前记录作上删方法只是将当前记录作上删除标记。通过这种方法除标记。通过这种方法Recordset可以处理数据缓冲集合。可以处理数据缓冲集合。 (3)Update方法方法 Update方法表示将对
21、方法表示将对Recordset对象中的当前记对象中的当前记录的任何修改保存在数据源中,条件是录的任何修改保存在数据源中,条件是Recordset能够允许更新且不能够允许更新且不是工作在批量更新模式下。是工作在批量更新模式下。 (4)CancelUpdate方法方法 CancelUpdate方法用来取消在调用方法用来取消在调用Update方法前所作的一切修改。方法前所作的一切修改。 (5)UpdateBatch方法方法 如果工作在批量更新模式下,该方法将如果工作在批量更新模式下,该方法将取消对取消对Recordset的修改。的修改。 当取消一个批量操作时,可以指定缓冲区的一个子集,以采用当取消一
22、个批量操作时,可以指定缓冲区的一个子集,以采用CancelBatch方法的一些方法的一些Affe-ctrecords变量在其上面的操作。变量在其上面的操作。 12.4.2 Recordset属性属性1MarshalOptions属性属性 该属性指示要被调度返回服务器的记录。该属性指示要被调度返回服务器的记录。 2AbsolutePage属性属性 该属性指定当前记录所在的页。该属性指定当前记录所在的页。3AbsolutePosition属性属性 该属性指定该属性指定Recordset对象当前记录的序号位置。对象当前记录的序号位置。 4Bookmark属性属性 该属性返回唯一标识该属性返回唯一标识
23、Recordset对象中当前记录的书签,或者将对象中当前记录的书签,或者将Reeordset对象的当前记录设置为由有效书签所标识的记录。对象的当前记录设置为由有效书签所标识的记录。 5CacheSize 属性属性 该属性指示缓存在本地内存中的该属性指示缓存在本地内存中的Recordset对象的记录数。对象的记录数。 6CursorType 属性属性 该属性指示在该属性指示在Recordset对象中使用的游标类型。对象中使用的游标类型。 7Filter属性属性 该属性为该属性为Recordset中的数据指定筛选条件。中的数据指定筛选条件。 8Index属性属性 该属性指示对该属性指示对Recor
24、dset对象当前生效的索引的名称。对象当前生效的索引的名称。9LockType属性属性 该属性指示编辑过程中对记录使用的锁定类型。该属性指示编辑过程中对记录使用的锁定类型。 10MaxRecords属性属性 该属性指示通过查询返回该属性指示通过查询返回Recordset记录的最大数目。记录的最大数目。11PageCount属性属性 该属性指示该属性指示Recordset对象包含的数据页数。对象包含的数据页数。12PageSize属性属性 该属性指示该属性指示Recordset中一页所包含的记录数。默认值为中一页所包含的记录数。默认值为10。13RecordCount属性属性 该属性指示该属性指
25、示Recordset对象中记录的当前数目。对象中记录的当前数目。 14Sort属性属性 该属性指定一个或多个该属性指定一个或多个Recordset对象中排序的字段名,并指对象中排序的字段名,并指定按升序还是降序对字段进行排序。定按升序还是降序对字段进行排序。 15Source属性属性 该属性指示该属性指示Recordset对象中数据的来源。对象中数据的来源。16State属性属性 该属性对所有可应用对象,说明其对象状态是打开或是关闭。对该属性对所有可应用对象,说明其对象状态是打开或是关闭。对执行异步方法的执行异步方法的Recordset对象,说明当前的对象状态是连接、执对象,说明当前的对象状态
26、是连接、执行或是获取。行或是获取。 12.5 Command对象对象 Command对象表示一个可被数据源处理的命令。这个对象提供对象表示一个可被数据源处理的命令。这个对象提供一种很简单的方法来处理查询或者存储过程。利用一种很简单的方法来处理查询或者存储过程。利用Command对象,对象,可以表示一个命令字符串、存储过程或一个表名。可以表示一个命令字符串、存储过程或一个表名。 1Command对象的方法对象的方法(1)CreateParameter方法方法 CreateParameter方法使用指定属性创建新的方法使用指定属性创建新的Parameter对象,对象,并在执行之前加到并在执行之前加
27、到Command对象的对象的Parameter集合中。集合中。Parameter对象表示传给对象表示传给SQL语句或存储进程的一个数。语句或存储进程的一个数。 (2)Execute方法方法 该方法执行在该方法执行在CommandText属性中指定的查询、属性中指定的查询、SQL语句或语句或存储过程。其方法与前面介绍的存储过程。其方法与前面介绍的Connection的的Execute方法类似。方法类似。 2Command的属性的属性(1)ActiveConnection属性属性 该属性指示指定的该属性指示指定的Command或或Recordset对象当前所属的对象当前所属的Connection对
28、象。对象。 (2)CommandText属性属性 该属性包含要根据提供者发送的命令的文本。该属性包含要根据提供者发送的命令的文本。 (3)CommandTimeout属性属性 该属性指示在终止尝试和产生错误之前执行命令期间需等待的该属性指示在终止尝试和产生错误之前执行命令期间需等待的时间。时间。 (4)CommandType属性属性 该属性指示该属性指示Command对象的类型。对象的类型。 (5)Prepared属性属性 该属性指示执行前是否保存命令的编译版本。该属性指示执行前是否保存命令的编译版本。 12.6 Errors集合和集合和Error对象对象 Connection对象有一个对象有
29、一个Errors集合,用来返回集合,用来返回ADO在操作过程中在操作过程中发生的错误。但是这个发生的错误。但是这个Errors集合并不包括会话过程中发生的错误,集合并不包括会话过程中发生的错误,而只是某一个操作所引起的错误。任何涉及而只是某一个操作所引起的错误。任何涉及ADO对象的操作都可对象的操作都可以产生一个或多个提供者错误。产生错误时,可以将一个或多个以产生一个或多个提供者错误。产生错误时,可以将一个或多个Error对象置于对象置于Connection对象的对象的Errors集合中。其他集合中。其他ADO操作产操作产生错误时,将清空生错误时,将清空Errors集合,并且将新的集合,并且将
30、新的Error对象置于对象置于Errors集合中。集合中。1Errors集合的方法集合的方法(1)Clear方法方法 该方法删除集合中的所有对象。该方法删除集合中的所有对象。 (2)Item方法方法 该方法根据名称或序号返回集合的特定成员。该方法根据名称或序号返回集合的特定成员。 2Errors的属性一的属性一Count属性属性 该属性指示集合中对象的数目。该属性指示集合中对象的数目。 3Error对象对象 Error对象包含与单个操作(涉及提供者)有关的数据访问错误的对象包含与单个操作(涉及提供者)有关的数据访问错误的详细信息。详细信息。 4Error属性属性(1)Description属性
31、属性 该属性描述该属性描述Error对象。对象。(2)HelpContext、HelpFile属性属性 该属性指示与该属性指示与Error对象关联对象关联的帮助文件和主题。 (3)NativeError属性属性 该属性指示给定该属性指示给定Error对象的、特定提供者的错误代码。对象的、特定提供者的错误代码。 (4)Number属性属性 该属性指示用于唯一标识该属性指示用于唯一标识Error对象的数字。对象的数字。 (5)Source属性属性 (ADO Error) 该属性指示产生错误的原始对象或应用程序的名称。该属性指示产生错误的原始对象或应用程序的名称。 (6)SQLState属性属性 该
32、属性指示给定该属性指示给定Error对象的对象的SQL状态。状态。 12.7 Parameters集合和集合和Parameter对象对象 Parameters集合包含集合包含Command对象的所有对象的所有Parameter对象对象.1Parameters集合的方法集合的方法(1)Append方法方法 该方法将对象追加到集合中。如果集合是该方法将对象追加到集合中。如果集合是Fields,可以先创,可以先创建新的建新的Filed对象然后再将其追加到集合中。对象然后再将其追加到集合中。 (2)Delete方法方法 该方法从该方法从Parameters集合中删除对象。集合中删除对象。2Parame
33、ter集合的属性集合的属性 Count属性属性: 它指示集合中对象的数目。它指示集合中对象的数目。 Item属性:它用来返回集合中某一个参数。它有一个索引值,属性:它用来返回集合中某一个参数。它有一个索引值,它即可以是所要的参数在它即可以是所要的参数在Parameters集合中的参数值,也可以是集合中的参数值,也可以是参数的名字。参数的名字。 3Parameter对象的方法对象的方法 AppendChunk方法方法 该方法将数据追加到大型文本、二进制数该方法将数据追加到大型文本、二进制数据据Field或或Parameter对象。对象。 4Parameter对象的属性对象的属性(1)Direct
34、ion属性属性 该属性指示该属性指示Parameter所标明的是输入参数、输出参数还是既所标明的是输入参数、输出参数还是既是输出又是输入参数或该参数是否为存储过程返回的值。是输出又是输入参数或该参数是否为存储过程返回的值。 (2)Name属性属性 Name属性指示对象的名称。属性指示对象的名称。 (3)NumericScale属性属性 该属性指出该属性指出Parameter或或Held对象中数字值的范围。对象中数字值的范围。 (4)Precision属性属性 该属性指示在该属性指示在Parameter对象中数字值或数字对象中数字值或数字Field对象的精度。对象的精度。(5)Size属性属性 该属性表示该属性表示Parameter对象的最大大小(按字节或字符)。对象的最大大小(按字节或字符)。(6)Value属性属性 该属性指示赋给该属性指示赋给Field、Parameter或或Property对象的值。对象的值。 12.8 Fields集合和集合和Field对象对象 Fields集合包含集合包含Recordset对象的所有对象的所有Field对象。对象。Recordset对象对象包括包括Field对象组成对象组成Fields集合。每个集合。每个Fields 对象对应其中的一列。对象对应其中的一列
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 标准作业安全管理制度
- 树桩月季基地管理制度
- 校区招生老师管理制度
- 校园党员之家管理制度
- 校园基建维修管理制度
- 校园展馆安全管理制度
- 校园特殊人员管理制度
- 校园职业健康管理制度
- 校园食堂刀具管理制度
- 2024年无汞碱锰电池项目资金筹措计划书代可行性研究报告
- 中职教师数字素养提升策略研究与实践效果分析
- EPC总承包管理实施方案
- 广东省广州市越秀区2023-2024学年五年级下学期数学期末考试试卷(含答案)
- 工程认证背景下软件工程专业实践课程平台研究与建设
- 2024年广东省东莞市事业单位公开招聘教师岗考试题带答案分析
- 浙江开放大学2025年《社区治理》终考测试答案
- 《危险化学品企业动火作业安全管理规定》知识培训
- 2025-2030年中国跨境电商零售行业市场现状分析及竞争格局与投资发展研究报告
- 终止妊娠协议书模板
- 2025年光伏产业技能竞赛理论考试题库(含答案)
- 新能源汽车动力电池维护技巧试题及答案
评论
0/150
提交评论