1.-掌握数据库及数据库管理系统的概念-2.-掌课件.ppt

上传人(卖家):三亚风情 文档编号:3003899 上传时间:2022-06-21 格式:PPT 页数:51 大小:537.50KB
下载 相关 举报
1.-掌握数据库及数据库管理系统的概念-2.-掌课件.ppt_第1页
第1页 / 共51页
1.-掌握数据库及数据库管理系统的概念-2.-掌课件.ppt_第2页
第2页 / 共51页
1.-掌握数据库及数据库管理系统的概念-2.-掌课件.ppt_第3页
第3页 / 共51页
1.-掌握数据库及数据库管理系统的概念-2.-掌课件.ppt_第4页
第4页 / 共51页
1.-掌握数据库及数据库管理系统的概念-2.-掌课件.ppt_第5页
第5页 / 共51页
点击查看更多>>
资源描述

1、 1. 掌握数据库及数据库管理系统的概念 2. 掌握关系型数据库模型的关系(表),记录、字段、关键字、索引概念等。 3. 学会使用可视化数据管理器建立的数据库是Access数据库(类型名为.mdb) 4. 了解数据库控件的常用属性及与相关控件的绑定 5. 了解结构化查询语言SQL对数据库中的数据进行操作 本章要求:本章重点:本章难点:1、查询语言SQL对数据库中的数据进行操作2、ADO对象模型数据库的建立与使用 15.1数据库的基本概念一、数据库的概念 数据库是以一定方式组织、存储及处理相互关联的数据的集合,它以一定的数据结构和一定的文件组织方式存储数据,并允许用户访问。这种集合具备下述特点:

2、 最少冗余; 数据资源共享; 数据独立性,即数据独立于使用它的应用程序; 由统一的软件系统管理和控制数据的增加、删除、修改和检索。 15.1数据库的基本概念二、数据库发展的三个阶段二、数据库发展的三个阶段 人工管理阶段;人工管理阶段; 文件管理阶段文件管理阶段 数据库管理阶段数据库管理阶段 15.1数据库的基本概念三、数据库分类三、数据库分类 数据库中数据的组织形式有多种,按数据库数据库中数据的组织形式有多种,按数据库使用的数据结构模型划分,到目前为止,数据库使用的数据结构模型划分,到目前为止,数据库可分为:可分为: 层次数据库:采用层次模型;层次数据库:采用层次模型; 网状数据库:采用网状模

3、型;网状数据库:采用网状模型; 关系数据库:采用关系模型;关系数据库:采用关系模型; 面向对象数据库:采用面向对象模型。面向对象数据库:采用面向对象模型。 根据数据模型,即实现数据结构化所采用的联系方式,数据库可以分为层次数据库层次数据库、网状数据库网状数据库和关系数据库关系数据库。 1 关系(表)关系(表)在关系数据库中,数据以关系的形式出现,可以把关系理解成一张二维表(Table)。2 记录(行)记录(行)每张二维表均由若干行和列构成,其中每一行称为一条记录(Record),3 字段(列)字段(列)二维表中的每一列称为一个字段(Field),每一列均有一个名字,称为字段名,各字段名互不相同

4、。4 主键主键关系数据库中的某个字段或某些字段的组合定义为主键(Primary Key)。每条记录的主键值都是唯一的,这就保证了可以通过主键唯一标识一条记录。关系数据库的有关概念关系数据库的有关概念 5索引索引 为了提高数据库的访问效率,表中的记录应该按照一为了提高数据库的访问效率,表中的记录应该按照一定顺序排列,通常建立一个较小的表定顺序排列,通常建立一个较小的表索引表,该表中索引表,该表中只含有索引字段和记录号。通过索引表可以快速确定要访只含有索引字段和记录号。通过索引表可以快速确定要访问记录的位置。问记录的位置。 15.2 15.2 数据库管理器数据库管理器1 建立数据库建立数据库VB提

5、供了两种方法建立数据库,分别是: 可视化数据管理器 数据访问对象(DAO) 大型数据库(如Oracle、Sybase等)不能在Visual Basic 6.0中创建,要创建这些类型的数据库,需要使用相应数据库管理系统提供的工具来完成。VB6.0提供了创建Microsoft Access数据库和其它一些数据库的工具“可视化数据管理器”。 在Visual Basic开发环境内单击“外接程序”菜单中的“可视化数据管理器”选项或在操作系统桌面上运行Visual Basic系统目录中的Visdataexe,都可打开可视化数据管理器。15.215.2数据库管理器数据库管理器(Visdata(Visdata

6、) ) 一、创建一个数据库 (1) 选择“可视化数据管理器”中“文件”菜单中的“新建”菜单项用于创建数据库,若选择“打开数据库”则用于打开一个已经建立好的数据库。 (2) 选择“Microsoft Access”菜单项,单击该菜单项下的“Version 7.0 MDB”菜单项,打开如图10-3所示的“选择要创建的Microsoft Access数据库”对话框。 (3) 选择新建数据库要保存的目录后,在“文件名”文本框中输入数据库的名称student,也就是数据库的文件名称。 (4)单击“确定”按钮关闭对话框,“可视化数据管理器”开始在指定的目录下创建以指定名称命名的Microsoft Acce

7、ss数据库,完成数据库创建工作, 15.2 数据库管理器(Visdata) 二、向数据库中添加数据表二、向数据库中添加数据表 操作步骤为: (1)在“数据库窗口”中右击鼠标,系统弹出一快捷菜单,单击其中的“新建表”菜单项,系统将打开“表结构”对话框 。 (2)在“表名称”文本框中键入表名,这里键入名称xjb。 (3)单击“添加字段”按钮,系统显示“添加字段”对话框,在这个对话框中定义表的字段。在“名称”文本框中输入字段名称,这里输入第一个字段“学号”的名称“st_No”;单击“类型”下拉列表框,从中选择字段类型“Integer”;“大小”文本框用于指定Text类型字段的宽度,该长度限制了输入到

8、这个字段的文本字符的最大长度,选择Text之外的数据类型时,不需要指定宽度。单击“确定”按钮,这样我们就定义了xjb表的第一个字段。 15.2 数据库管理器数据库管理器(Visdata) 15.2 数据库管理器数据库管理器(Visdata) 三、数据表中数据的编辑 四、添加或删除索引 五、使用查询生成器一、数据控件的概念 数据控件(Data控件)是Visual Basic中最常见的控件,在工具箱中的图标为 ,利用它可以在应用程序中访问前面所创建的数据库。 数据控件不能显示数据,需要与数据绑定控件配合使用。 15.3 数据控件二、二、 数据控件常用属性数据控件常用属性1.Connect属性Con

9、nect属性指定数据控件所要连接的数据库类型。Visual Basic 60提供了7种可访问的数据库类型,Visual Basic可识别的数据库有:1)Microsoft Access的MDB文件(缺省值);2)Borland dBASE、Microsoft Foxpro的DBF文件;3)Borland Paradox的DB文件;4)Novell Btrieve的DDF文件;5)Microsoft Excel的XLS文件;6)Lotus的WKS文件;7)Open DataBase Connectivity(ODBC)数据库2. DatabaseName属性属性DatabaseName属性指定具

10、体使用数据库的名称,包括所有的路径名。如果连接的是单表数据库,则DatabaseName属性应设置为数据库文件所在的子目录名,而具体文件名放在RecordSource属性中。如果在“属性”窗口中单击DatabasName属性右边的按钮,会出现一个公用对话框用于选择相应的数据库。例如,下面语句设置了可访问的数据库名称:如果连接一个Microsoft Access的数据库C:职员档案mdb,则Data1DatabaseName”C:职员档案mdb”;如果连接一个Foxpro数据库C:yang职员档案1dbf,因为Foxpro数据库只含有一个表,则Data1DatabaseName”C:yang”,

11、RecordSource=”职员档案1dbf”。如果未写数据库文件的扩展名,则缺省情况下为使用以.mdb为扩展名的数据库文件。3、RecordSource属性属性RecordSource属性确定具体可访问的数据,这些数据构成记录集对象Recordset。4)RecordsetType属性RecordsetType属性确定记录集类型。5)ReadOnly属性在对数据库只查看不修改时,通常将ReadOnly属性设置为True,而在运行时根据一定的条件,响应一定的指令后,才将它设置为False。6)Exclusive属性Exclusive属性值设置为True时,则在通过关闭数据库撤消这个设置前,其他

12、任何人不能对数据库访问。这个属性的缺省值是False。7)BOFAction、EOFAction属性当BOFAction值为0,控件重定位到第一个记录;BOFAction值为1,移过记录集开始位,定位到一个无效记录,触发数据控件对第一个记录的无效事件。当EOFAction值为0,控件重定位到最后一个记录;当EOFAction值为1,移过记录集结束位,定位到一个无效记录,触发数据控件对最后一个记录的无效事件;EOFAction值为2,向记录集加入新的空记录,可以对新纪录进行编辑,移动记录指针新纪录写入数据库。数据控件的常用方法数据控件的常用方法1 Refresh方法如果在设计状态没有为打开数据控

13、件的有关属性全部赋值,或当RecordSource在运行时 被改变后,必须使用激活数据控件的Refresh方法激活这些变化。2 UpdateCountrols方法UpdateCountrols方法可以将数据从数据库中重新读到 被数据控件绑定的空件内。使用UpdateCountrols方法终止用户对绑定内控件的修改。3 UpdateRecord方法当对绑定内的控件修改后,数据控件需要移动记录集的指针才能保存修改,如果使用UpdateRecord方法可强制数据控件将绑定控件内的数据写入到数据库中而不再触发Vaildate事件。在代码中用该方法修改。数据控件的事件数据控件的事件1 Repositio

14、n事件Reposition事件发生在一条记录成为当前记录后。只要改变记录集的指针使其从一条指针移到另一条记录。会产生Reposition事件,可以在该事件过程中建立程序,可反映出记录位置、记录总数等。2 Validate事件当要移动记录指针前,修改与删除记录前或卸载含有数据控件的窗体时触发Validate事件。Validate事件检查被数据控绑定的控件内的数据是否发生变化。它通过save参数()True或False)判断是否有数据发生变化,Action参数判断哪一种操作触发了Validate事件。Action参数可为表156中的值:Recordset对象代表一组与数据库相关的逻辑记录集合。它所

15、对应的数据来源可以是数据表,也可以是和SQL语言中查询语句(SELECT)有关的查询结果。Recordset对象有三种类型:Table类型:记录集为表集,可以显示、添加、删除和修改,具有较好的更新性能。Dynaset类型:记录集为动态集,可以显示、添加、删除和修改,并具有较大的操作灵活性。Snapshot类型:记录集为快照集,只能显示,具有较好的显示速度。RecordSet对象的属性和方法对象的属性和方法 记录集 Recordset的属性 Recordset 是一个数据结构,通常用来表示从数据库中提取的一个记录集。在VB中只能通过Recordset 对象对数据库进行操作。 (1)BOF和和EO

16、F 属性属性 用来测试记录指针是否已超出数据库的首记录或尾记录。BOF属性用来测试记录指针是否超出文件头;EOF属性用来测试记录指针是否超出文件尾。 假设需要读出数据库中的全部记录,可以使用假设需要读出数据库中的全部记录,可以使用Recordset 的的EOF属性,程序如下:属性,程序如下: Do While Data1.Recordset.Eof=False 依次读出记录依次读出记录 记录指针下移一个记录指针下移一个 Loop (2)AbsolutePosition 属性属性 AbsolutePosition 属性用于反映记录指针的当前位属性用于反映记录指针的当前位置。注意:置。注意: Ab

17、solutePosition 属性所反映出来的记录属性所反映出来的记录指针的当前位置值比它的绝对位置的编号少指针的当前位置值比它的绝对位置的编号少1,假设,假设当前位置十号记录当前位置十号记录由由AbsolutePosition 给出的值则是给出的值则是2。 (3)Bookmark 属性属性 Bookmark 属性用于返回或设置当前记录指针的书属性用于返回或设置当前记录指针的书签,其数据类型为签,其数据类型为String。在程序中可以用。在程序中可以用Bookmark 属性对记录指针重新定位属性对记录指针重新定位。 (4)RecordCount 属性属性 RecordCount 属性用于测量数

18、据库的总记录数。在属性用于测量数据库的总记录数。在多用户情况下,由于多用户情况下,由于Recordset 对象的不断变化,对象的不断变化, RecordCount 测出的数据可能不准确。为了能得到准测出的数据可能不准确。为了能得到准确的记录总数,在测量记录总数时需要先将记录指针确的记录总数,在测量记录总数时需要先将记录指针移动到最后一个移动到最后一个记录,语句如下:记录,语句如下: Data1.Recordset.MoveLast 然后使用然后使用RecordCount属性,属性, Data1.Recordset. RecordCount这样就能准确地得到当前记录集的记录总数了。这样就能准确地

19、得到当前记录集的记录总数了。 (5)Nomatch 属性属性 Nomatch属性用于判断在使用属性用于判断在使用Find方法和方法和Seek方法方法做查询操作时是否查询到符合查询条件的记录,如果做查询操作时是否查询到符合查询条件的记录,如果其返回值为其返回值为True则表示没有符合条件的记录,反之则则表示没有符合条件的记录,反之则表示有相应记录被找到表示有相应记录被找到对记录的操作能够通过Recordset对象的方法实现。其常用方法有:1)AddNew方法加入一条新记录到记录集内存缓冲区。2) Edit方法允许对当前记录进行修改。3) Delete方法用于删除当前记录。4) Update方法把

20、内存缓冲区的内容写进数据库文件,保存对数据库所作的改动。5) Close方法关闭记录集和数据库。该方法也能用在数据库对象上,将数据库关闭。RecordSet对象的方法对象的方法5) Move方法使用Move方法可代替对数据库控件对象的4个箭头的操作遍历整个记录几种的记录。5种Move方法是:(1)MoveFirst方法移至第一条记录(2)MoveLast方法移至最后一条记录(3)MoveNext方法移至下一条记录(4)MovePrevious方法移至上一条记录(5)Moven方法向前或向后移动n条记录,n为指定的数值。(6) Find方法方法 可在指定的可在指定的Dynaset或或Snapsh

21、ot类型的类型的Recordset对象中查找与指定条件相符的一个记录,并使之对象中查找与指定条件相符的一个记录,并使之成为当前记录。成为当前记录。4种种Find方法是:方法是: FindFirst或或 FindLast方法方法. 找到满足条件的找到满足条件的第一个第一个或或最后一个记录。最后一个记录。 FindNext或或FindPrevious方法找到满足条件的方法找到满足条件的下一个下一个或或上一个记录。上一个记录。 4种种Find方法的语法格式相同:方法的语法格式相同: 数据集合数据集合.Find方法方法 条件条件数据绑定控件数据绑定控件要使文本等控件与数据控件捆绑在一起,成为数据控件的

22、绑定控件。并且能够受到数据库约束,必须在运行时对这些控件的两个属性进行设置:1)DataSource属性DataSource属性用来将一个有效的数据控件与一个数据库连接。2)DataFleld属性DataFleld属性设置数据库有效的字段与绑定控件建立联系。绑定控件、数据控件和数据库三者的关系SQL(结构化查询语言,Structure Query Language)是操作数据库的工业标准语言,许多数据库和软件系统都支持SQL或提供SQL语言接口。这一节将向用户介绍SQL的常用语句。1SQL命令SQL的功能实际上包括查询、操作、定义和控制四个方面。其中最常用的是查询功能,其次为数据定义功能。v

23、SQL基本命令动词基本命令动词SQL功能功能命令动词命令动词数据查询数据查询SELECT数据定义数据定义CREATE,DROP数据操作数据操作INSERT,UPDATE,DELETE数据控制数据控制GRANT,REVOKE15.6 SQL语言语言SQL语言的核心是查询语句,它的基本格式为:语言的核心是查询语句,它的基本格式为:SELECT列名表名列名表名FROM基本表名或视图名基本表名或视图名WHERE条件表达式条件表达式GROUP BY 列名列名l HAVING内部函数表达式内部函数表达式ORDER BY 列名列名2 ASC或或DESC 31SQL在VB中的应用 1. 使用SELECT语句查

24、询 无论是数据控件还是数据对象都可使用无论是数据控件还是数据对象都可使用SELECT语句查语句查询数据。询数据。 例如 用用SQL语句显示数据库语句显示数据库Biblio.mdb中出版日期为中出版日期为1996年全部记录。年全部记录。 Data1.RecordSource = SELECT * FROM Titles WHERE Year Published =1996用用Data1.Refresh方法激活这些变化。方法激活这些变化。选择表中所有字段指定表Title构成查询条件SELECT语句可以看作记录集的定义语句,它从一个或多个表中获取指定字段,生成一个较小的记录集。下面通过一组对前面建立

25、的学生成绩数据库的查询操作来学习SELECT语句的基本用法。(1)选取表中部分列。例如查询学生成绩表中的英语和计算机成绩:SELECT 英语,计算机 FROM score(2)选取表中所有列。例如查询学生成绩表中的所有信息:SELECT * FROM score(3)WHERE子句。例如查询数学成绩不及格的学生信息:SELECT * FROM score WHERE 数学60(4)复合条件。例如查询数学和英语成绩均不及格的学生信息:SELECT * FROM score WHERE 数学60 AND 英语=60 ORDER BY 数学 DESC (6)统计信息。例如查询数学成绩不及格的人数、数

26、学平均分、最高分:SELECT COUNT(*)AS 人数 FROM score WHERE 数学60SELECT AVG(数学)AS 平均分,MAX(数学)AS 最高分 FROM score (7) GROUP BY子句。例如查询男生与女生的数学平均分:SELECT 性别,AVG(数学)AS 平均分FROM score GROUP BY 性别 (8) HAVING子句。例如查询数学成绩不及格的人数大于10人的班级和相应人数:SELECT 班级,COUNT(*)AS 人数 FROM score WHERE 数学10(9)多表查询。例如查询学生的学号、姓名和籍贯(假设有一个student表,其中

27、包含了学生的学号、籍贯等信息):SELECT score . 学号,score . 姓名,score . 数学,student . 籍贯 FROM score,student WHERE score . 学号= student . 学号如前所述,数据控件的RecordSource属性除了可以设置成表名外,还可以设置为一条SQL语句,格式如下:数据控件名 . RecordSource=“SQL语句” 在使用ADO据控件前,必须先通过“工程/部件”菜单命令选择“Microsoft ADO Data control6.0(0LE DB)”选项,将ADO数据控件添加到工具箱。ADO数据控件与Visua

28、l Basic的内部数据控件很相似,它允许使用ADO数据控件的基本属性快速地创建与数据库的连接。 1ADO数据控件的基本属性 (1)ConnectionString属性 ADO控件没有DatabaseName属性,它使用Connectionstring属性与数据库建立连接。该属性包含了用于与数据源建立连接的相关信息,Connectionstring属性带有4个参数,如下表 所示。 参参 数数 描描 述述Provide指定连接提供者的名称指定连接提供者的名称FileName指定数据源所对应的文件名指定数据源所对应的文件名RemoteProvide在远程数据服务器打开一个客户端时所用的数据源名称在

29、远程数据服务器打开一个客户端时所用的数据源名称Remote Server在远程数据服务器打开一个主机端时所用的数据源名称在远程数据服务器打开一个主机端时所用的数据源名称15.7 Activex数据对象及其使用数据对象及其使用 (2)RecordSource属性 RecordSource确定具体可访问的数据,这些数据构成记录集对象Recordset。该属性值可以是数据库中的单个表名,一个存储查询,也可以是使用SQL查询语言的一个查询字符串。 (3)ConnectionTimeout属性 用于数据连接的超时设置,若在指定时间内连接不成功显示超时信息。 (4)MaxRecords属性 定义从一个查询

30、中最多能返回的记录数。 2ADO数据控件的方法和事件 ADO数据控件的主要方法和事件与Data控件的方法和事件一样 。 3设置ADO数据控件的属性 具体内容请参见教材。下面是某公司人力资源部的认识数据库管理系统的员工管理程序,其中实现了员工的增加、修改、删除、查询等功能。解析:首先建立如图所示的用户界面,并设置各个控件的属性,然后编写相应代码。 应用举例Dim mbookmark As Variant“第一个按第一个按”钮的事件代码钮的事件代码Private Sub Command1_Click() If Not Data1.Recordset.BOF Then Data1.Recordset

31、.MovePrevious Else MsgBox 已到数据库头,无法再移动!已到数据库头,无法再移动!, vbCritical, 数据库数据库 Data1.Recordset.MoveFirst End If Me.RefreshEnd Sub“下一个下一个”按钮的事件代码按钮的事件代码Private Sub Command2_Click() If Not Data1.Recordset.EOF Then Data1.Recordset.Movenext Else MsgBox 已到数据库尾,无法再移动!已到数据库尾,无法再移动!, vbCritical, 数据库数据库 Data1.Reco

32、rdset.Movelast End If Me.RefreshEnd Sub“第一个第一个”按钮的事件代码按钮的事件代码Private Sub Command3_Click() Data1.Recordset.MoveFirst Me.RefreshEnd Sub“末一个末一个”按钮的事件代码按钮的事件代码Private Sub Command4_Click() Data1.Recordset.Movelast Me.RefreshEnd Sub“查找查找”按钮的事件代码按钮的事件代码Private Sub Command5_Click() Dim mno As String mno = I

33、nputBox$(请输入员工编号请输入员工编号, 查找查找) Data1.Recordset.FindFirst 员工编号员工编号= & mno & If Data1.Recordset.NoMatch Then MsgBox 无此编号无此编号, , 提示提示End Sub“新增新增”按钮的事件代码按钮的事件代码Private Sub Command6_Click() Command7.Enabled = Not Command7.Enabled Command8.Enabled = Not Command8.Enabled Command9.Enabled = Not Command9.En

34、abled If Command6.Caption = 新增新增 Then Command6.Caption = 确认确认 mbookmark = Data1.Recordset.Bookmark Data1.Recordset.AddNew Text1.SetFocus Else Command6.Caption = 新增新增 Data1.Recordset.Update Data1.Recordset.Movelast End IfEnd Sub“删除”按钮的事件代码Private Sub Command7_Click() Dim s As String On Error GoTo Del

35、Err s = MsgBox(确定删除这组记录吗?, vbQuestion + vbOKCancel, 删除确定) If s = 1 Then Data1.Recordset.Delete Data1.Recordset.Movenext If Data1.Recordset.RecordCount 0 Then If Data1.Recordset.EOF Then Data1.Recordset.Movelast End If End If End If Exit SubDelErr: MsgBox Err.DescriptionEnd Sub“修改修改”按钮的事件代码按钮的事件代码Pri

36、vate Sub Command8_Click() Command6.Enabled = Not Command6.Enabled Command7.Enabled = Not Command7.Enabled Command9.Enabled = Not Command9.Enabled If Command8.Caption = 修改修改 Then Command8.Caption = 确认确认 mbookmark = Data1.Recordset.Bookmark Data1.Recordset.Edit Text1.SetFocus Else Command8.Caption = 修

37、改修改 Data1.Recordset.Update End IfEnd Sub“放弃放弃”按钮的事件代码按钮的事件代码Private Sub Command9_Click() Command6.Caption = 新增新增 Command8.Caption = 修改修改 Command6.Enabled = True Command7.Enabled = True Command8.Enabled = True Command9.Enabled = False Data1.UpdateControls Data1.Recordset.Bookmark = mbookmarkEnd Sub“退

38、出退出”按钮的事件代码按钮的事件代码Private Sub Command11_Click() EndEnd Subv数据库控件的检查是否输入合法数据:数据库控件的检查是否输入合法数据:vPrivate Sub Data1_Validate(Action As Integer, Save As Integer)v If Text1.Text = And (Action = 6 Or Text1.DataChanged) Thenv MsgBox 数据不完整,必须要有编号!数据不完整,必须要有编号!v Data1.UpdateControlsv End Ifv If Action = 1 And Action = 4 Thenv Command6.Caption = 新增新增v Command8.Caption = 修改修改v Command6.Enabled = Truev Command7.Enabled = Truev Command8.Enabled = Truev Command9.Enabled = Falsev End IfvEnd Sub

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(1.-掌握数据库及数据库管理系统的概念-2.-掌课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|