




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第7章 获取数据7.1 ADO.NET简介ADO.NET 是与C#和 Microsoft.NET framework一起使用的类集的名称,用于以关系型的、面向表的格式访问数据。这包括关系数据库,比如Microsoft Access 和SQL Server,以及其他数据库,甚至还包括非关系数据源。ADO.NET被集成到.NET framework,用于.NET语言。ADO.NET包含System.Data名称空间中的一组对象,System.Data名称空间可以通过.NET的数据提供者(provider)与数据库通信。ADO.NET的名称来源于ADO(ActiveX Data Objects),这
2、是用途广泛的类组,用于在以往的Microsoft技术中访问数据。之所以使用ADO.NET名称,是因为Microsoft希望表明,这是在.NET编程环境中优先使用的数据访问接口。ADO.NET的主要目标是提供对关系数据的简单访问功能。ADO.NET提供两个核心组件:DataSet和.NET数据提供者程序。ADO.NETDataSet组件为ADO.NET提供断开式结构服务,它的设计是为了实现独立于任何数据源的数据访问。因此,它可以用于多种不同的数据源。.NET数据提供者程序用于连接到数据源,检索、修改数据源中的数据。开发人员可以将检索到的结果放入ADO.NETDataSet。在实际应用中,.NET
3、数据提供者程序在数据源和ADO.NETDataSet之间起着桥梁的作用。ADO.NET提供了两种内置的ADO.NET数据提供者,一种是OLE DB.NET数据提供程序,用于使用OLE DB公开的数据源(如Microsoft Access),另一种是SQL Server.NET提供者程序,用于使用Microsoft SQL Server7.0或更高版本。另外,Microsoft最近预演了用于ADO.NET的ODBC.NET提供者,它允许.NET访问更多的旧的数据格式和第三方数据库。7.2使用ADO.NET访问数据库7.2.1 ADO.NET类和对象概述可以把类分为.NET提供者对象和用户对象。提
4、供者对象专用于每一种类型的数据源;专用于提供者的对象完成在数据源中实际的读取和写入工作。用户对象是将数据读入到内存中后用来访问和操纵数据的对象。用户对象以非连接方式使用;提供者对象要求活动的连接,可以使用它们首先读取数据,然后根据需要,通过用户对象使用内存中的数据,通过使用者对象更新数据源中的数据,并将变动写回到数据源中。提供者对象即在每一个.NET数据提供者中定义的对象,其名称前带有专用于提供者的名称。1连接对象Connection连接对象是您要使用的第一个对象,被要求用于任何其他ADO.NET对象之前。它提供了到数据源的基本连接。专用于提供者的名称包括用于SQL Server7.0的Sql
5、Connection和用于 OLE DB 的 OleDbConnection。2命令对象Command可以使用此对象发出命令,比如对数据源的查询,专用于提供者的名称包括用于SQL Server 的SqlCommand 和用于 OLE DB 的 OleDbCommand。3 CommandBuilder对象此对象用于构建SQL命令,可以在基于单一表查询的对象中进行数据修改。专用于提供者的名称包括用于SQL Server7.0的SqlCommandBuilder和用于OLE DB 的OleDbCommandBuilder。4 DataReader对象可以从数据源中读取仅能前向和只读的数据流。此对象
6、具有最好的功能,可以简单地读取数据;专用于提供者的名称包括用于SQL Server7.0的SqlDataReader和用于OLE DB的OledbDataReader。5 DataAdapter对象提供连接DataSet对象和数据源的桥梁,DataAdapter使用Command对象在数据源中执行SQL命令,对数据源进行各种操作,包括更新变动的数据,填充数据集以及其他操作。专用于提供者的名称包括用于SQL Server7.0的SqlDataAdapter和用于OLE DB的OledbAdapter。7.2.3 用户对象DataSet此对象表示一组相关表,在应用程序中这些表作为一个单元被引用。有
7、了此对象,就可以快速从每一个表中获取所需要的数据,当与服务器断开时检查并修改数据,然后在一次操作中使用这些修改的数据更新服务器。DataSet具有属性,使得您可以访问低级对象,这些对象代表单独的表、行、列和关系。这些对象是:1. DataTable对象此对象代表在DataSet中的表。可以在DataSet中存储多个DataTable对象。2. DataRow对象此对象代表来自表的关联数据的行。可以在DataTable中存储多个DataRow对象。3.DataColumn 对象此对象代表表中的列。可以在DataRow中存储多个DataColumn对象。4. DataRelation对象此对象代表
8、通过共享列而发生关系的两个表之间的关系。 使用System.Data名称空间在C#代码中使用ADO.NET的第一步是引用System.Data名称空间,其中含有所有的ADO.NET类。1. SQL Server.NET数据提供者如果您使用的是SQL Server(版本7或更高级的版本)或MSDE,则通过使用SQL Server专用的.NET数据提供者就可以获得最好的性能和对基础性的功能的最直接的访问,按如下方式使用using 指令可以引用SQL Server 专用的.NET数据提供者:using System.Data.SqlClient;2. OLE DB.NET提供者对于不是SQL Ser
9、ver7.0或以上版本的大多数数据源(Microsoft Access, Oralce 以及其他数据源)可以使用OLE DB.NET数据提供者,按如下方式使用using指令引用它:using System.Data.OleDb;*7.3 在VS中访问数据例题1:建立SQL Server数据库student,显示其中一个表xs的记录内容,并可查询、修改、删除其记录。(参见D:GZC#ado数据库sql 程序)一 建立SQL Server数据库启动Microsoft SQL Serverà企业管理器àMicrosoft SQL ServersàSQL Servers组
10、àlocal(Windows NT)à右键单击数据库à单击新建数据库à输入新建数据库名(student)à右键单击 studentà单击新建表,输入表中各字段定义,确定主键à关闭该窗口并以xs为名存储à右键单击xs表à单击打开表à单击返回所有行à输入表中各记录值à关闭该窗口。二将C#应用程序与数据库连接1.建立数据适配器到数据库的连接在工具箱中单击“数据”标签à双击“SqlDataAdapter”,打开“数据适配器配置向导”à单击“下一步”à选“
11、新建数据库连接”,打开“数据链接属性”对话框à输入服务器名(选择默认的即可),选择“使用windows集成安全”,在服务器上选择数据库“student”,点击“测试连接”按钮,显示“连接成功”à单击“确定”à单击“下一步”à选择“使用SQL语句”,单击“下一步”à单击“查询生成器”à添加表xsà选“*”,单击“确定”à单击“下一步”à单击“完成”此时,表单下添加了两个对象,即sqlDataAdapter1和sqlConnection1。数据适配器包含我们希望从数据库中返回的数据的基本信息,是.NET数据提
12、供者的一个组件,用于将来自数据库的数据填充到DataSet中,并将在DataSet中的变化返回到数据库中。sqlConnection对象包含了ADO.NET 用来连接到数据库的所有信息。2.添加DataSet右键单击刚才创建的sqlDataAdapter1à选择“生成数据集”à选择“新建”DataSet1,选择“添加到数据集中的表xs”à单击“确定”此时Form下添加了一个新的对象DataSet11,同时,解决方案中添加了一个新文件DataSet1.xsd。此文件是DataSet的模式。XSD(XML模式定义)模式是一个文档,通过它,我们可以验证XML文档的结构,
13、XML是用于表示数据的文本格式。因为DataSet在后台使用XML组织数据,此文件由VS自动生成,它规定了数据集、每一个表及表之间的关系的结构。3.文本框与数据库数据的绑定在表单上创建文本框txtxh,在其DataBindings属性细目上,单击其text部分,出现datasete11-xs-xh xm,单击“xh”,则txtxh与xs表中的xh字段绑定。同样方法,可将另一个文本框txtxm与xm字段绑定。这仅仅意味着在文本框中可以看见数据集中的数据,用户在文本框中所作的任何变化都可以反映到DataSete中。但这不会影响数据源(即数据库)中的数据,除非用更新命令修改表中数据。4.上述操作仅定
14、义了来自表中的数据的结构,还没有定义实际的数据,下面的命令是通知数据适配器填充DataSet,即使应用程序获取数据:可单击表单(Form)背景,进入代码编辑器,(或制作一查询按钮,在其事件处理程序中,)写如下代码: this.sqlDataAdapter1.Fill(this.dataSet11,0,0,”xs”);Fill()方法使用来自数据源的数据填充DataSet中的DataTable。此方法带有4个参数。第一个参数规定希望填充的DataSet,在此就是dataSet11 。第二个参数规定,应该从第几个记录开始。第三个参数规定返回几个记录。如果设为0,则返回所有记录。第4个参数规定生成数
15、据的表的名称,在此就是xs。现在,保存并运行该程序,可在文本框中看到xs表中的首行记录值。5.添加导航按钮,以便看到表中全部记录。见源程序代码。6.使用DataGrid浏览表中所有数据在其DataSouce属性中设置dataset11.xs主要代码如下:staticvoidMain() Application.Run(new Form1();privatevoid Form1_Load(object sender, System.EventArgs e)/this.sqlDataAdapter1.Fill(this.dataSet11,0,0,"xs");privatevo
16、id btnback_Click(object sender, System.EventArgs e)this.BindingContextthis.dataSet11,"xs".Position-;privatevoid btnnext_Click(object sender, System.EventArgs e)this.BindingContextthis.dataSet11,"xs".Position+;privatevoid btnupdate_Click(object sender, System.EventArgs e)this.sqlD
17、ataAdapter1.Update(this.dataSet11.xs);privatevoid btnqer_Click(object sender, System.EventArgs e)this.dataSet11.Clear();this.sqlDataAdapter1.Fill(this.dataSet11,0,0,"xs");privatevoid btnreset_Click(object sender, System.EventArgs e)this.dataSet11.Clear();*例题2:建立Access数据库,显示其中一个表的记录内容,并可查询、
18、修改、删除其记录。(参见D:GZC#备课Database1程序)staticvoidMain() Application.Run(new DateBase2();privatevoid Form1_Load(object sender, System.EventArgs e)/this.oleDbDataAdapter1.Fill(this.dataSet11,0,0,"t1");privatevoid buttonback_Click(object sender, System.EventArgs e)this.BindingContextthis.dataSet11,&
19、quot;t1".Position-;privatevoid buttonnext_Click(object sender, System.EventArgs e)this.BindingContextthis.dataSet11,"t1".Position+;privatevoid buttonupdate_Click(object sender, System.EventArgs e)this.oleDbDataAdapter1.Update(this.dataSet11.t1);privatevoid buttonq_Click(object sender,
20、 System.EventArgs e)this.dataSet11.Clear();this.oleDbDataAdapter1.Fill(this.dataSet11,0,0,"t1");privatevoid buttonr_Click(object sender, System.EventArgs e)this.dataSet11.Clear();7.4使用SQL Server.NET数据提供者应用举例例题1:用ADO.NET访问SQL数据库在数据库魏菊丽20086666中建立student表,其中含sno(主键),sname,ssex,sage,sdept等字段。
21、在Form1中制作一个 comboBox控件,该控件含有CS,IS,MA三个系的选项,让用户通过该控件选择查询学生所在系,在dataGridView控件中显示查询结果。代码详见d:gzc#ado数据库ado_combox2005 程序1.“数据库ado_combox2005”程序界面:2.其中,控件comboBox1中项目(Items)的设置:3.“数据库ado_combox”程序中“查询按钮”运行结果界面:4.“数据库ado_combox2005”程序代码:/用户添加,可以引用SQL Server专用的.NET数据提供者using System.Data.SqlClient;/以下butto
22、n1_Click是“数据库ado_combox”程序“查询”按钮代码privatevoid button1_Click(object sender, System.EventArgs e)/生成连接对象实例thisConnection连接SQL Server数据库魏菊丽20086666SqlConnection thisConnection=new SqlConnection("Data Source=localhost;Integrated Security=SSPI;Initial Catalog=魏菊丽20086666");/*创建并返回一个与thisConnecti
23、on相关联的SqlCommand 对象实例thisCommand,同时获取或设置要对数据源执行的SQL语句*/SqlCommand thisCommand=new SqlCommand("select * from student where sdept='"+comboBox1.Text+"'",thisConnection); /创建一个SqlDataAdapter对象实例thisAdapterSqlDataAdapter thisAdapter=new SqlDataAdapter();/获取一个SQL语句,用于在数据源中选择记录t
24、hisAdapter.SelectCommand=thisCommand;DataSet thisDataSet=new DataSet();/生成数据集实例thisDataSetthisConnection.Open();/打开本次设置的数据库连接/将以上在数据源中选择的记录的所有行填充到数据集中,仍然命名为表student。thisAdapter.Fill(thisDataSet, "student");/*设置 dataGridView1的数据源为数据集中的数据*/this.dataGridView1.DataSource=thisDataSet.Tables0;th
25、isConnection.Close();/断开本次数据库连接例题2:用ADO.NET访问SQL数据库建立student数据库,在该库中建立xs表,其中含xh(主键),xm字段。在Form1中制作一个 dataGridView控件用来浏览数据库表中的数据。制作一个ListBox用来显示查询结果。制作若干按钮,分别完成浏览、添加、修改、删除、查询表中记录的功能。详见d:gz.C#课件2006新教案数据库sqlado 程序1.本题界面设计如下:2.代码如下:using System;using System.Drawing;using System.Collections;using System
26、.ComponentModel;using System.Windows.Forms;using System.Data;using System.Data.SqlClient;/用户自己添加,可以引用SQL Server专用的.NET数据提供者staticvoidMain() Application.Run(new Form1();/以下功能是浏览数据库student中的xs表的所有记录privatevoid btnliulan_Click(object sender, System.EventArgs e)/用SqlConnection对象实例thisConnection连接SQL Ser
27、ver数据库studentSqlConnection thisConnection=new SqlConnection("Data Source=localhost;Integrated Security=SSPI;Initial Catalog=student");/创建一个SqlDataAdapter对象实例thisAdapteSqlDataAdapter thisAdapter=new SqlDataAdapter();/生成数据集实例DataSet thisDataSet=new DataSet();/创建并返回一个与SqlConnection相关联的SqlComm
28、and 对象SqlCommand thisCommand=thisConnection.CreateCommand();/获取或设置要对数据源执行的SQL语句thisCommand.CommandText="select xh,xm from xs"thisAdapter.SelectCommand =thisCommand ;/获取一个SQL语句,用于在数据源中选择记录thisConnection.Open();/打开本次设置的数据库连接/将以上在数据源xs中选择的记录的所有行填充到数据集中,仍然命名为表xs。thisAdapter.Fill(thisDataSet,&q
29、uot;xs");thisConnection.Close();/断开本次数据库连接/*设置 dataGridView1的数据源为数据集中的数据*/this.dataGridView1.DataSource = thisDataSet.Tables0;/以下功能是查询数据库student中的xs表中姓“a”的所有记录/以下代码是显示查询结果的另一种方法,即显示在listBox1中。privatevoid btnchaxun_Click(object sender, System.EventArgs e)this.listBox1.Items.Clear();SqlConnection
30、 thisConnection=new SqlConnection("Data Source=laptop;Integrated Security=SSPI;Initial Catalog=student");SqlCommand thisCommand=thisConnection.CreateCommand();thisCommand.CommandText="select xm from xs where xm like 'a%'"thisConnection.Open();/*ExecuteReader()创建读取器对象,用于读取
31、生成的结果,将带有所包含的结果的该读取器指派给thisReader*/ SqlDataReader thisReader=thisCommand.ExecuteReader();/*Read()方法从查询中读取单独的一行数据.若有多个数据要读,则返回true;如果没有,则返回false.*/while(thisReader.Read()/*当Read()返回true时,输出结果。SqlDataReader对象提供索引符属性,允许引用列*/this.listBox1.Items.Add(thisReader"xm");thisReader.Close();thisConnec
32、tion.Close();/以下功能是向数据库student中的xs表添加新记录privatevoid btntj_Click(object sender, System.EventArgs e)SqlConnection thisConnection=new SqlConnection("Data Source=localhost;Integrated Security=SSPI;Initial Catalog=student");SqlDataAdapter thisAdapter=new SqlDataAdapter();DataSet thisDataSet=new
33、 DataSet();SqlCommand thisCommand=thisConnection.CreateCommand();thisCommand.CommandText="select xh,xm from xs "thisAdapter.SelectCommand =thisCommand ;thisConnection.Open();SqlCommandBuilder thisBuilder = new SqlCommandBuilder(thisAdapter);thisAdapter.Fill(thisDataSet, "xs");Dat
34、aRow thisRow=thisDataSet.Tables"xs".NewRow();/在数据集的 xs Table中创建新行thisRow"xh"="555"thisRow"xm"="QQ"/设置新行中的个字段值thisDataSet.Tables"xs".Rows.Add(thisRow);/将新行添加到数据集的 xs Table中thisAdapter.Update(thisDataSet,"xs");/ 修改数据库表thisConnection
35、.Close();/以下功能是修改数据库student中的xs表的记录privatevoid btnxg_Click(object sender, System.EventArgs e)SqlConnection thisConnection=new SqlConnection("Data Source=localhost;Integrated Security=SSPI;Initial Catalog=student");SqlDataAdapter thisAdapter=new SqlDataAdapter();DataSet thisDataSet=new Data
36、Set();SqlCommand thisCommand=thisConnection.CreateCommand();thisCommand.CommandText="select xh,xm from xs "thisAdapter.SelectCommand =thisCommand ;thisConnection.Open();SqlCommandBuilder thisBuilder = new SqlCommandBuilder(thisAdapter);thisAdapter.Fill(thisDataSet, "xs"); thisDat
37、aSet.Tables"xs".Rows5"xm"="qq"thisAdapter.Update(thisDataSet,"xs");thisConnection.Close();/以下功能是删除数据库student中的xs表的记录privatevoid btnsc_Click(object sender, System.EventArgs e)SqlConnection thisConnection=new SqlConnection("Data Source=localhost;Integrated
38、Security=SSPI;Initial Catalog=student");SqlDataAdapter thisAdapter=new SqlDataAdapter();DataSet thisDataSet=new DataSet();SqlCommand thisCommand=thisConnection.CreateCommand();thisCommand.CommandText="select xh,xm from xs "thisAdapter.SelectCommand =thisCommand ;thisConnection.Open();
39、SqlCommandBuilder thisBuilder = new SqlCommandBuilder(thisAdapter);thisAdapter.Fill(thisDataSet, "xs");DataColumn keys=new DataColumn1;keys0=thisDataSet.Tables"xs".Columns"xh"/key0的值为该数据集xs Table中的xh值 thisDataSet.Tables"xs".PrimaryKey=keys;/设xh为主键DataRow findR
40、ow=thisDataSet.Tables"xs".Rows.Find("555");/获取包含指定主键值"555"的行/ Call Update command to mark change in tableif(findRow !=null) /若找到该行findRow.Delete();/删除该行thisAdapter.Update(thisDataSet,"xs");/修改数据库表thisConnection.Close();privatevoid dataGrid1_Navigate(object sen
41、der, System.Windows.Forms.NavigateEventArgs ne)*7.5使用OLE DB.NET数据提供者应用举例1.使用ADO.NET获取表中的数据。(参见D:GZC#备课DATA程序)using System;using System.Data;using System.Data.OleDb;namespace DATAclass DataReaderAccessExamplestaticvoidMain(string args)OleDbConnection thisConnection = new OleDbConnection("Provide
42、r=Microsoft.Jet.OLEDB.4.0;Data Source=D:gzc#备课db1.mdb");thisConnection.Open();/打开连接对象,建立了到数据库的连接OleDbCommand thisCommand=thisConnection.CreateCommand();/CreateCommand()方法可创建与此连接相关联的命令thisCommand.CommandText ="SELECT xh,xm FROM t1"/命令本身被指派给命令对象的CommandText属性OleDbDataReader thisReader=t
43、hisCommand.ExecuteReader();/*ExecuteReader()创建读取器对象,用于读取生成的结果,将带有所包含的结果的该读取器指派给thisReader*/while(thisReader.Read()/*Read()方法从查询中读取单独的一行数据.若有多个数据要读,则返回true;如果没有,则返回false.*/Console.WriteLine("t0t1",thisReader"xh",thisReader"xm");/*当Read()返回true时,输出结果OleDbDataReader对象提供索引符
44、属性,允许引用列,作为按列名称的数组引用*/thisReader.Close();thisConnection.Close();2.使用ADO.NET修改表中的数据。(参见D:GZC#备课ModiData程序)sing System;using System.Data;using System.Data.OleDb;namespace UpdatingDataclass Class1staticvoidMain(string args)/ Specify SQL Server-specific connection stringOleDbConnection thisConnection =
45、new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:gzc#备课db1.mdb");thisConnection.Open();/ Create DataAdapter object for update and other operationsOleDbDataAdapter thisAdapter = new OleDbDataAdapter( "SELECT xh, xm FROM t1", thisConnection);/ Create CommandBuild
46、er object to build SQL commandsOleDbCommandBuilder thisBuilder = new OleDbCommandBuilder(thisAdapter);/ Create DataSet to contain related data tables, rows, and columnsDataSet thisDataSet = new DataSet();/ Fill DataSet using query defined previously for DataAdapterthisAdapter.Fill(thisDataSet, "
47、;t1");/ Show data before changeConsole.WriteLine("name before change: 0", thisDataSet.Tables"t1".Rows0"xm");/ Change data in t1 table, row 0, xm columnthisDataSet.Tables"t1".Rows0"xm" = "ppp"/ Call Update command to mark change in tabl
48、ethisAdapter.Update(thisDataSet, "t1");Console.WriteLine("name after change: 0",thisDataSet.Tables"t1".Rows0"xm");3.使用ADO.NET添加表中数据行。(参见D:GZC#备课AddRow程序)using System;using System.Data;using System.Data.OleDb;namespace UpdatingDataclass Class1staticvoidMain(str
49、ing args)/ Specify SQL Server-specific connection stringOleDbConnection thisConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:gzc#备课db1.mdb");thisConnection.Open();/ Create DataAdapter object for update and other operationsOleDbDataAdapter thisAdapter = new O
50、leDbDataAdapter( "SELECT xh, xm,XB,NL FROM t1", thisConnection);/ Create CommandBuilder object to build SQL commandsOleDbCommandBuilder thisBuilder = new OleDbCommandBuilder(thisAdapter);/ Create DataSet to contain related data tables, rows, and columnsDataSet thisDataSet = new DataSet();/
51、 Fill DataSet using query defined previously for DataAdapterthisAdapter.Fill(thisDataSet, "t1");/ Show data before changeConsole.WriteLine("#rows before change: 0", thisDataSet.Tables"t1".Rows.Count );DataRow thisRow=thisDataSet.Tables"t1".NewRow();thisRow&quo
52、t;xh"="888"thisRow"xm"="WQ"thisRow"xb"="m"thisRow"nl"=18;thisDataSet.Tables"t1".Rows.Add(thisRow);/ Call Update command to mark change in tableConsole.WriteLine("#rows after change: 0",thisDataSet.Tables"t1&quo
53、t;.Rows.Count );thisAdapter.Update(thisDataSet,"t1");4.使用ADO.NET删除表中数据行。(参见D:GZC#备课DeleRow程序)using System;using System.Data;using System.Data.OleDb;namespace UpdatingDataclass Class1/ The main entry point for the application.staticvoidMain(string args)/ Specify SQL Server-specific connecti
54、on stringOleDbConnection thisConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:gzc#备课db1.mdb");thisConnection.Open();/ Create DataAdapter object for update and other operationsOleDbDataAdapter thisAdapter = new OleDbDataAdapter( "SELECT xh, xm,xb,nl FROM
55、 t1", thisConnection);/ Create CommandBuilder object to build SQL commandsOleDbCommandBuilder thisBuilder = new OleDbCommandBuilder(thisAdapter);/ Create DataSet to contain related data tables, rows, and columnsDataSet thisDataSet = new DataSet();/ Fill DataSet using query defined previously fo
56、r DataAdapterthisAdapter.Fill(thisDataSet, "t1");/ Show data before changeConsole.WriteLine("#rows before change: 0", thisDataSet.Tables"t1".Rows.Count );DataColumn keys=new DataColumn1;keys0=thisDataSet.Tables"t1".Columns"xh"thisDataSet.Tables"t1".PrimaryKey=keys;DataRow findRow=thisDataSet
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 煤炭制品国际贸易合同条款考核试卷
- 电器具生产过程中的质量管理考核试卷
- 节能型纺织设备智能节能技术考核试卷
- 建筑设计方案设计要点汇报
- 《Q&HSE体系培训》课件
- 环保设备工程导论课件
- 《LED灯生产工艺与质量控制》课件
- 2019-2025年助理医师资格证考试之口腔助理医师考前冲刺模拟试卷B卷含答案
- 合规师初级考试试题及答案
- 小班耳朵相关课件
- Inspection and test plan 完整版 详细版1
- 医院重点监控药物的合理应用
- 《装配式建筑用墙板技术要求》JGT578-2021
- 创造性思维与创新方法智慧树知到期末考试答案章节答案2024年大连理工大学
- 外科围手术期营养支持疗法
- 知道网课智慧树《集成电路测试技术基础(北方工业大学)》章节测试答案
- 人工智能在新闻中的应用
- (高清版)TDT 1015.1-2024 地籍数据库 第1部分:不动产
- CJT156-2001 沟槽式管接头
- 民宿承包合同协议书样本
- 检修中的应急处置培训课件
评论
0/150
提交评论