




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第五章第五章 ASP.NET数据库编程数据库编程5.1 网络数据库编程基础网络数据库编程基础 在.NET框架中,包含了其自己的数据访问技术ADO.NET。ADO.NET包含托管的类使得WEB应用程序可以连接数据源、执行指令以及管理非连接的数据。使得ASP.NET中的ADO.NET几乎不用编写代码就可以对网络数据库进行基本的操作,这使得ASP.NET中的数据处理变得非常简单。 5.1 网络数据库编程基础网络数据库编程基础 ASP.NET ASP.NET中包含两类数据控件中包含两类数据控件:第:第一类是数据源(一类是数据源(Data SourceData Source)控件,)控件,它可以使它可以
2、使WEBWEB页面与数据源连接,并且页面与数据源连接,并且对该数据源进行读写。但是,在运行对该数据源进行读写。但是,在运行时数据源控件是不可见的,它无法将时数据源控件是不可见的,它无法将数据显示在数据显示在ASP.NETASP.NET的页面上。第二类的页面上。第二类是数据绑定(是数据绑定(Data-boundData-bound)控件,这)控件,这些控件用来将数据源所连接的数据显些控件用来将数据源所连接的数据显示在页面上。示在页面上。5.2 数据源控件数据源控件 ASP.NET ASP.NET引入了声明性数据源控件,这引入了声明性数据源控件,这些控件向页面上的数据绑定控件公开来自些控件向页面上
3、的数据绑定控件公开来自后端存储(例如后端存储(例如SQLSQL数据库)的数据。数据数据库)的数据。数据源控件还公开诸如排序、分页、缓存、更源控件还公开诸如排序、分页、缓存、更新、插入和删除数据等功能,这样新、插入和删除数据等功能,这样UIUI控件控件能够自动利用这些功能而无需代码。简而能够自动利用这些功能而无需代码。简而言之,一个数据源控件就是一组言之,一个数据源控件就是一组.NET.NET框架框架类,它有利于数据存储和数据绑定控件之类,它有利于数据存储和数据绑定控件之间的双向绑定。间的双向绑定。 ASP.NETASP.NET中内置的数据源控件中内置的数据源控件 数据源控件说明ObjectDa
4、taSource支持绑定到中间层对象来管理数据的Web应用程序。SqlDataSource支持绑定到ADO.NET提供程序所表示的SQL数据库。AccessDataSource支持绑定到Microsoft Access数据库。XmlDataSource允许使用XML文件。它还可以更新整个XML文档的数据。SiteMapDataSource 支持绑定到ASP.NET 2.0站点导航提供程序公开的层次结构。5.2 数据源控件数据源控件5.2.1 5.2.1 绑定到数据库绑定到数据库 在连接到数据库时,需要制定数据源在连接到数据库时,需要制定数据源控件的几个属性。最明显就是控件的控件的几个属性。最明
5、显就是控件的IDID以以及及“runatrunat=server”=server”。另外,还要指明位。另外,还要指明位于哪个服务器上的哪个数据库以及要登录于哪个服务器上的哪个数据库以及要登录该服务器的用户名和密码。这些属性都包该服务器的用户名和密码。这些属性都包含在连接字符串中。含在连接字符串中。5.2 数据源控件数据源控件 连接到数据库之后,还需要指定从连接到数据库之后,还需要指定从数据源读取的记录和字段。当然,还数据源读取的记录和字段。当然,还需要指定数据源的数据提供程序,以需要指定数据源的数据提供程序,以描述数据源控件与数据库的交互方式描述数据源控件与数据库的交互方式。5.2 数据源控件
6、数据源控件例例1 1:使用:使用SqlDataSourceSqlDataSource数据源控件连数据源控件连接接SQL ServerSQL Server数据库,并显示其中的数据库,并显示其中的数据数据例例2 2:在页面中添加一个:在页面中添加一个GridViewGridView控件,控件,将该控件与将该控件与pubspubs数据库中的数据库中的authorsauthors表表绑定绑定5.3 数据绑定控件数据绑定控件 数据绑定控件吧数据源提供的数据作为数据绑定控件吧数据源提供的数据作为标记,发送给请求的客户端浏览器,然后标记,发送给请求的客户端浏览器,然后将数据呈现在浏览器页面上。数据绑定控将数
7、据呈现在浏览器页面上。数据绑定控件能够自动绑定到数据源公开的数据,并件能够自动绑定到数据源公开的数据,并在页请求生命周期中的适当时间获取数据在页请求生命周期中的适当时间获取数据。这些控件还可以选择利用数据源功能,。这些控件还可以选择利用数据源功能,例如排序、分页、筛选、更新、删除和插例如排序、分页、筛选、更新、删除和插入。入。5.3 数据绑定控件数据绑定控件 在第三章介绍的在第三章介绍的ASP.NET服务器控件大多服务器控件大多可以作为数据绑定控件来使用,例如将可以作为数据绑定控件来使用,例如将Lable和和TextBox控件绑定到数据库表中的一控件绑定到数据库表中的一个字符串字段。这种绑定可
8、以通过修改该个字符串字段。这种绑定可以通过修改该控件的控件的DataSourceID属性使之连接到数据源属性使之连接到数据源控件上。控件上。新增的数据绑定控件新增的数据绑定控件名称名称说明说明GridViewGridView以网格格式呈现数据。此控件是以网格格式呈现数据。此控件是DataGridDataGrid控件的控件的演变形式,并且能够自动利用数据源功能。演变形式,并且能够自动利用数据源功能。DetailsViewDetailsView在标签在标签/ /值对的表格中呈现单个数据项,类似于值对的表格中呈现单个数据项,类似于AccessAccess中的窗体视图。此控件也能自动利用数据中的窗体视
9、图。此控件也能自动利用数据源功能。源功能。FormViewFormView在由自定义模板定义的窗体中一次呈现单个数据项在由自定义模板定义的窗体中一次呈现单个数据项。在标签。在标签/ /值对的表格中呈现单个数据项,类似于值对的表格中呈现单个数据项,类似于AccessAccess中的窗体视图。此控件也能自动利用数据中的窗体视图。此控件也能自动利用数据源功能。源功能。TreeViewTreeView在可展开节点的分层树视图中呈现数据。在可展开节点的分层树视图中呈现数据。MenuMenu以分层动态菜单(包括弹出式菜单)来呈现数据。以分层动态菜单(包括弹出式菜单)来呈现数据。5.3 数据绑定控件数据绑定
10、控件5.3.1 GridView控件控件 GridView控件,完全支持数据源组件,控件,完全支持数据源组件,能够自动处理诸如分页、排序和编辑等数能够自动处理诸如分页、排序和编辑等数据操作,前提是绑定的数据源对象支持这据操作,前提是绑定的数据源对象支持这些操作。另外,它支持多个主键字段,公些操作。另外,它支持多个主键字段,公开了一些用户界面的改进功能和一个处理开了一些用户界面的改进功能和一个处理与取消事件的新模型与取消事件的新模型5.3 数据绑定控件数据绑定控件 GridView控件附带了一对互补的视图控控件附带了一对互补的视图控件,件,DetailsView和和FormView,通过这些控,
11、通过这些控件的组合,能够轻松地建立主件的组合,能够轻松地建立主/详细视图,详细视图,而只需少量代码。而只需少量代码。5.3 数据绑定控件数据绑定控件 GridViewGridView控件支持以下功能:控件支持以下功能:n绑定到数据源控件。绑定到数据源控件。n内置的排序功能。内置的排序功能。n内置的更新和删除功能。内置的更新和删除功能。n内置的分页功能。内置的分页功能。n内置的行选择功能。内置的行选择功能。5.3 数据绑定控件数据绑定控件n对对GridViewGridView对象模型进行编程访问以动对象模型进行编程访问以动态设置属性和处理事件。态设置属性和处理事件。n诸如诸如CheckBoxFi
12、eldCheckBoxField和和ImageFieldImageField等新的等新的列类型。列类型。n用于超链接列的多个数据字段。用于超链接列的多个数据字段。n用于选择、更新和删除的多个数据键字用于选择、更新和删除的多个数据键字段。段。n可通过主题和样式自定义的外观。可通过主题和样式自定义的外观。 5.3 数据绑定控件数据绑定控件 例如:例如:GridView控件的数据显示、分页和排控件的数据显示、分页和排序序5.3 数据绑定控件数据绑定控件5.3.2 Details View控件控件 许多应用程序需要一次作用于一条记录许多应用程序需要一次作用于一条记录。一种方法是创建单条记录的视图,但是
13、。一种方法是创建单条记录的视图,但是这需要自己编写代码。首先,需要获取记这需要自己编写代码。首先,需要获取记录,然后,将字段绑定到数据绑定表单,录,然后,将字段绑定到数据绑定表单,选择性地提供分页按钮来浏览记录。选择性地提供分页按钮来浏览记录。5.3 数据绑定控件数据绑定控件 当生成主当生成主/详细视图时,经常需要显示单详细视图时,经常需要显示单条记录的内容。通常,用户从网格中选择条记录的内容。通常,用户从网格中选择一条主记录,让应用程序追溯所有可用字一条主记录,让应用程序追溯所有可用字段。通过组合段。通过组合GridView和和DatilsView控件,控件,编写少量代码,就能够生成有层次结
14、构的编写少量代码,就能够生成有层次结构的视图。视图。5.3 数据绑定控件数据绑定控件 DetailsView控件在表格中显示数据源的单控件在表格中显示数据源的单个记录,此表格中每个数据行表示记录中个记录,此表格中每个数据行表示记录中的一个字段。此控件经常在主控的一个字段。此控件经常在主控/详细方案详细方案中与中与GridView控件一起使用。控件一起使用。5.3 数据绑定控件数据绑定控件 DatilsView控件能够自动绑定到任何数据控件能够自动绑定到任何数据源控件,使用其数据操作集。控件能够自源控件,使用其数据操作集。控件能够自动分页、更新、插入和删除底层数据的数动分页、更新、插入和删除底层
15、数据的数据项,只要数据源支持这些操作。多数情据项,只要数据源支持这些操作。多数情况下,建立这些操作无需编写代码。况下,建立这些操作无需编写代码。5.3 数据绑定控件数据绑定控件例如:主例如:主/详细视图的创建:详细视图的创建: 主视图:在页面中插入一主视图:在页面中插入一GridView控件控件,并配置其数据源。,并配置其数据源。 详细视图:在页面中插入一详细视图:在页面中插入一DetilsView控控件,并配置其数据源,其数据源可用件,并配置其数据源,其数据源可用GridView控件的数据源同时其主键与控件的数据源同时其主键与GridView控件关联。控件关联。5.3 数据绑定控件数据绑定控
16、件5.3.3 FormView控件控件 该控件在任意形式的模板中一次呈现单该控件在任意形式的模板中一次呈现单个数据项。个数据项。DatilsView和和FormView之间的主之间的主要差异在于要差异在于DatilsView具有内置的表格呈现具有内置的表格呈现方式,而方式,而FormView需要用户定义的模板用需要用户定义的模板用于呈现。于呈现。 FormView和和DatilsView对象模型在对象模型在其他方面非常类似。其他方面非常类似。5.3 数据绑定控件数据绑定控件 FormView是新的数据绑定控件,使用起是新的数据绑定控件,使用起来像是来像是DatilsView的模板化版本。它每次
17、从的模板化版本。它每次从相关数据中选择一条记录显示,选择性地相关数据中选择一条记录显示,选择性地提供分页按钮,用于在记录之间移动。与提供分页按钮,用于在记录之间移动。与DatilsView控件不同的是,控件不同的是,FormView不使用不使用数据控件字段,而是允许用户通过模板定数据控件字段,而是允许用户通过模板定义每个项目的显示。义每个项目的显示。 FormView支持其数据支持其数据源提供的任何基本操作。源提供的任何基本操作。5.3 数据绑定控件数据绑定控件 FormView控件是作为通常使用的更新和控件是作为通常使用的更新和插入接口而设计的,它不能验证数据源架插入接口而设计的,它不能验证
18、数据源架构,不支持高级编辑功能,比如外键字段构,不支持高级编辑功能,比如外键字段下拉。然而,使用模板来提供此功能很容下拉。然而,使用模板来提供此功能很容易。易。5.3 数据绑定控件数据绑定控件FormView和和DatilsView有两方面的差异:有两方面的差异:lFormView控件具有控件具有ItemTemplate、EditItemTemplate和和InsertItemTemplate等属等属性,而性,而DatilsView一个也没有。一个也没有。lFormView缺少命令行缺少命令行5.3 数据绑定控件数据绑定控件 与与GridView和和DatilsView控件不同的是,控件不同的
19、是, FormView没有其自己默认的显示布局。同没有其自己默认的显示布局。同时,它的图形化布局完全是通过模板自定时,它的图形化布局完全是通过模板自定义的。因此,每个模板都包括特定记录需义的。因此,每个模板都包括特定记录需要的所有命令按钮。大多数模板是可选的要的所有命令按钮。大多数模板是可选的;但是,必须为该控件的配置模式创建模;但是,必须为该控件的配置模式创建模板。例如,要插入记录的话,必须定义板。例如,要插入记录的话,必须定义InsertItemTemplate。5.3 数据绑定控件数据绑定控件例如:使用例如:使用FormView控件呈现数据:控件呈现数据:(1)、在页面中添加、在页面中添
20、加GridView控件,并配置其控件,并配置其数据源数据源(2)、在页面中添加、在页面中添加FormView控件,配置其数控件,配置其数据源并编辑模板据源并编辑模板5.3 数据绑定控件数据绑定控件5.3.4 Repeater和和DataList控件控件 这两个控件和其他数据控件不同的是,这两个控件和其他数据控件不同的是,这两个控件都是以自定义的格式显示数据这两个控件都是以自定义的格式显示数据库记录的信息库记录的信息5.3 数据绑定控件数据绑定控件 Repeater控件是一个数据绑定容器控件,它生控件是一个数据绑定容器控件,它生成一系列单个项。在呈现数据之前,使用模板定成一系列单个项。在呈现数据
21、之前,使用模板定义网页上单个项的布局。页运行时,义网页上单个项的布局。页运行时, 该控件为数该控件为数据源中的每个项重复相应布局。据源中的每个项重复相应布局。 使用使用Repeater控件创建基本的模板数据绑定列控件创建基本的模板数据绑定列表。表。 Repeater控件没有内置的布局或样式;必须控件没有内置的布局或样式;必须在此控件的模板内显示声明所有的在此控件的模板内显示声明所有的HTML布局、格布局、格式设置和样式标记。式设置和样式标记。5.3 数据绑定控件数据绑定控件 Repeater控件不同于其他数据列表控件控件不同于其他数据列表控件之处在于它允许用户在其模板中放置之处在于它允许用户在
22、其模板中放置HTML代码和标记。这样就可以创建复杂的代码和标记。这样就可以创建复杂的HTML结构。例如,若要在结构。例如,若要在HTML表中创建一个列表中创建一个列表,需要通过在表,需要通过在HeaderTemplate中放置中放置标记来开始此表。然后,通过在标记来开始此表。然后,通过在ItemTemplate中放置中放置标记、标记、标记和标记和数据绑定项来创建该表的行和列。数据绑定项来创建该表的行和列。5.3 数据绑定控件数据绑定控件 如果要使表中的交替项呈现不同的外观如果要使表中的交替项呈现不同的外观,使用与,使用与ItemTemplate相同的内容创建相同的内容创建Alternating
23、ItemTemplate。最后,通过在。最后,通过在FooterTemplate中放置中放置标记完成该标记完成该表。表。5.4 ADO.NET的数据访问的数据访问5.4.1 数据访问体系结构数据访问体系结构 对于对于.NET框架中的框架中的WEB应用程序,数据访应用程序,数据访问依赖于两个独立的体系结构层:问依赖于两个独立的体系结构层: 第一层由执行数据访问所需的框架组件第一层由执行数据访问所需的框架组件组成;组成; 第二层是为程序员提供数据访问功能的第二层是为程序员提供数据访问功能的API和控件。和控件。 从实践的观点看,只需了解能否为特定从实践的观点看,只需了解能否为特定数据源找到匹配的数
24、据提供程序。数据源找到匹配的数据提供程序。 5.4 ADO.NET的数据访问的数据访问 数据访问涉及数据访问涉及4个主要的组件,个主要的组件,WEB应用应用程序(程序(ASP.NET)、数据层()、数据层(ADO.NET )、)、数据提供程序以及真正的数据源。数据提供程序以及真正的数据源。5.4 ADO.NET的数据访问的数据访问5.4.2 数据存储数据存储 数据存储始于堆栈的底部,提供了整个数据存储始于堆栈的底部,提供了整个数据访问体系结构的基础。通过数据访问体系结构的基础。通过ADO.NET 2.0和和ASP.NET 2.0的新增控件,的新增控件,WEB应用程应用程序能够访问多个数据存储中
25、的数据,包括序能够访问多个数据存储中的数据,包括关系数据库、关系数据库、WEB服务、服务、XML文件等。文件等。5.4 ADO.NET的数据访问的数据访问5.4.3 数据提供程序数据提供程序 在在ASP.NET 中,除了基本的数据访问之外中,除了基本的数据访问之外,提供程序模型实际上还用于多种不同的,提供程序模型实际上还用于多种不同的任务。例如,使用新增的个性化功能存储任务。例如,使用新增的个性化功能存储用户数据时依赖于几类提供程序。因此,用户数据时依赖于几类提供程序。因此,实际的提供程序结构是功能依赖的。实际的提供程序结构是功能依赖的。5.4 ADO.NET的数据访问的数据访问ADO.NET
26、数据提供程序的核心对象数据提供程序的核心对象 对象描述Connection建立到指定资源的链接Command对一个数据源执行命令。公开Parameters,在Connection的事物范围内执行。DataReader从一个数据源读取只进的只读数据流DataAdapter填充一个DataSet,解析数据源的更新5.4 ADO.NET的数据访问的数据访问 提供程序模型明确了各种使用用途。这提供程序模型明确了各种使用用途。这样,样,ASP.NET开发人员能够集中精力构建开发人员能够集中精力构建WEB应用程序的用户界面,而后端开发人应用程序的用户界面,而后端开发人员则能够通过现有的企业级数据存储实现员
27、则能够通过现有的企业级数据存储实现复杂的集成。复杂的集成。5.4 ADO.NET的数据访问的数据访问1、Connection和和Command ADO.NET包含的包含的.NET框架数据提供程序用框架数据提供程序用于连接一个数据库,执行命令和检索结果于连接一个数据库,执行命令和检索结果。在。在ADO.NET中,使用中,使用Connection对象连接对象连接指定的数据源。指定的数据源。5.4 ADO.NET的数据访问的数据访问 使用使用SQLConnection对象连接一个数据库对象连接一个数据库,其代码如下:,其代码如下:SqlConnectionSqlConnection nwindCon
28、nnwindConn = = new new SqlConnectionSqlConnection ( Data Source = ( Data Source = localhostlocalhost; Integrated Security = ; Integrated Security = true; Initial Catalog=true; Initial Catalog=northwindnorthwind ););nwindConn.OpennwindConn.Open();();5.4 ADO.NET的数据访问的数据访问 连接到数据源后,使用连接到数据源后,使用CommandCo
29、mmand对象执行对象执行命令和返回结果。命令和返回结果。CommandCommand对象通过对象通过CommandCommand的构造函数创建,该构造函数接收的构造函数创建,该构造函数接收一个一个SQLSQL语句或语句或SQLSQL查询。一旦创建了查询。一旦创建了CommandCommand,就能使用,就能使用CommandTextCommandText属性修改属性修改SQLSQL语句。语句。5.4 ADO.NET的数据访问的数据访问代码如下:代码如下: SqlCommandSqlCommand catCMDcatCMD = = new new SqlCommand(SELECTSqlCom
30、mand(SELECT CategoryIDCategoryID, , CategoryNameCategoryName FROM Categories, FROM Categories, nwindConnnwindConn););5.4 ADO.NET的数据访问的数据访问 实际上,一条命令等同于一个特定的实际上,一条命令等同于一个特定的SQL调用,该调用绑定到特定的数据库。一调用,该调用绑定到特定的数据库。一条命令只能用于条命令只能用于CommandText字段中定义字段中定义的特定调用。的特定调用。5.4 ADO.NET的数据访问的数据访问 CommandCommand对象提供了一些不同
31、的对象提供了一些不同的ExecuteExecute方法方法来启动存储过程,执行查询或者执行非查询语句来启动存储过程,执行查询或者执行非查询语句。其。其ExecuteExecute方法有如下几种:方法有如下几种:nExecuteReaderExecuteReader方法方法:将数据作为一个:将数据作为一个DataReaderDataReader对象返回。用于任何返回数据的对象返回。用于任何返回数据的SQLSQL查询。查询。nExecuteScalarExecuteScalar方法方法:返回单独值,例如与特:返回单独值,例如与特定查询相匹配的记录数,或者数据库功能调用定查询相匹配的记录数,或者数据
32、库功能调用的结果。的结果。nExecuteNonQueryExecuteNonQuery方法方法:执行不返回任何行的:执行不返回任何行的命令。典型的例子是存储过程、插入和更新。命令。典型的例子是存储过程、插入和更新。5.4 ADO.NET的数据访问的数据访问 ExecuteReaderExecuteReader方法将任何结果都返回方法将任何结果都返回到到DataReaderDataReader对象。对象。 DataReaderDataReader对象是查对象是查询数据库返回的一个关联的、只进的只读询数据库返回的一个关联的、只进的只读数据流。执行查询时,第一行返回到数据流。执行查询时,第一行返回
33、到DataReaderDataReader中。数据流保持到数据库的连中。数据流保持到数据库的连接,然后返回下一条记录。接,然后返回下一条记录。 DataReaderDataReader从从数据库中读取行数据时,每行的列值都被数据库中读取行数据时,每行的列值都被读取和计算,但是不能被编辑。读取和计算,但是不能被编辑。5.4 ADO.NET的数据访问的数据访问 例如:制作一网页,要求实现登陆功能例如:制作一网页,要求实现登陆功能 当用户输入用户名和密码后到数据库当用户输入用户名和密码后到数据库中查询输入的用户名和密码是否存在以及中查询输入的用户名和密码是否存在以及是否匹配,如果匹配,则进入下一页面
34、,是否匹配,如果匹配,则进入下一页面,如果不匹配,则给出错误提示。如果不匹配,则给出错误提示。 5.4 ADO.NET的数据访问的数据访问习题:制作一网页,要是实现注册功能习题:制作一网页,要是实现注册功能 当用户输入注册的用户名、密码、确认当用户输入注册的用户名、密码、确认密码、性别、年龄等信息后,将用户输入密码、性别、年龄等信息后,将用户输入的注册信息插入数据库,并能通过注册的的注册信息插入数据库,并能通过注册的用户名和密码实现登陆功能。用户名和密码实现登陆功能。 5.4 ADO.NET的数据访问的数据访问2、DataAdapter和和DataSet 虽然连接数据库的应用程序使用虽然连接数据库的应用程序使用DataReader就已经足够了,但是,就已经足够了,但是, DataReader不能很好地支持数据库访问的断不能很好地支持数据库访问的断开连接模型。而开连接模型。而DataAdapter和和DataSet类则类则满足了这一需求。满足了这一需求。5.4 ADO.NET的数据访问的数据访问 DataSet是是ADO.NET断开连接体系结构断开连接体系结构中主要的数据存储工具。填充中主要的数据存储工具。填充DataSet时,时,并非通过并非通过Connection对象将对象将DataSet直接
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年英语翻译与口译专业考试试卷及答案
- 婚前房产及珠宝首饰赠与及婚后共有产权及财产分割及婚后财产管理协议
- 抖音短视频平台内容创作者权益维护与合作协议
- 娱乐设施安全性试验补充服务协议
- 环保教育合作办学与实践活动协议
- 《可口可乐营销策略》课件
- 《国学名句解析》课件
- 《生态友好的产品设计》课件
- 《管理者的日常习惯》课件
- 《GBT41849-2022智能消费品质量安全管理指南》(2025版)深度解析
- 广东省深圳市2023-2024学年三年级下册第1-5单元期中模拟测试数学试卷(北师大版)
- 24春国家开放大学《农业推广》调查报告参考答案
- 慈善行业案例用慈善法分析
- 系统性硬化症性肺病变的护理查房
- 市教育局印鉴使用流程图
- 2024年山西大地环境投资控股有限公司招聘笔试参考题库含答案解析
- 《永遇乐·京口北固亭怀古》公开课获奖教案设计
- 新编《民间非营利组织会计制度》解读与操作指南
- 节能模压高耐腐锌铝镁彩钢(PVDF涂层)耐火电缆桥架
- 医院培训课件:《床旁快速检测(POCT)》
- 医院护理培训课件:《老年综合评估与护理安全》
评论
0/150
提交评论