Download presentation
Presentation is loading. Please wait.
1
第6章 ADO.NET数据库编程
2
6.1 ADO.NET的基本对象 ADO.NET又被称为ActiveX数据对象(ActiveX Data Object)。ADO.NET对象模型中有五个主要的组件,分别是Connection、Command、DataReader、DataSet以及DataReader。 图 ADO.NET组件结构
3
6.2 连接数据库 6.2.1 创建数据库 创建数据库可以使用可视化方式或者使用SQL语句。
6.2 连接数据库 6.2.1 创建数据库 创建数据库可以使用可视化方式或者使用SQL语句。 使用Microsoft SQL Server Management Studio可以通过可视化的方式创建SQL Server数据库。
4
6.2 连接数据库 6.2.2 连接SQL Server数据库 SQL Server .NET Framework数据提供程序使用SqlConnection对象提供与Microsoft SQL Server的7.0版或它的更高版本的连接。 使用SqlConnection对象建和打开数据库连接的实例: string ConnStr = "server=localhost; Integrated Security=True; database=pubs; "; SqlConnection sqlConn= new SqlConnection(ConnStr); sqlConn.Open(); 其中,server指定了SQL Serverr服务器的名字,这里设置localhost表示为本机;Integrated Security表示采用信任连接方式,即用Windows组帐号(在ASP环境中是访问IIS服务帐号IUSR_计算机名,在ASP.NET环境中帐号是ASPNET)登录至SQL Server数据库服务器,。Database(或Initial Catalog)用于设置登录到哪个数据库中。
5
6.2 连接数据库 6.2.3 连接Microsoft Access数据库
6.2 连接数据库 6.2.3 连接Microsoft Access数据库 对于没有加密的ACCESS文件,可以使用.NET Framework 2.0版中新增的AccessDataSource控件进行连接,对于受密码保护的ACCESS文件,只能使用SqlDataSource控件来实现连接。 图 “添加连接”对话框
6
SqlCommand类可以用来对SQL Server数据库执行的一个Transact-SQL语句或存储过程。该类的属性和方法主要有:
6.3 读取数据 6.3.1 使用SqlCommand类 SqlCommand类可以用来对SQL Server数据库执行的一个Transact-SQL语句或存储过程。该类的属性和方法主要有: CommandText属性:获取或设置要对数据源执行的 Transact-SQL 语句或存储过程。 CommandTimeout属性:设置获取或设置在终止执行命令的尝试并生成错误之前的等待时间。 Parameter属性:为在SQL语句或者存储过程中使用的参数设置值。 ExecuteNonQuery:可以通过该命令来执行不需要返回值的操作。 ExecuteScalar:它可以执行SELECT查询,但返回的是一个单值,多用于查询聚合值的情况。 ExecuteReader:该方法返回一个DataReader对象,内容为与命令匹配的所有行。
7
6.3 读取数据 6.3.2 使用OleDBCommand类 OleDBCommand的使用方法和SqlCommand非常类似,用来连接支持OLE DB技术的数据源。由于OleDbCommand类属于System.Data.OleDb命名空间,因此使用该类时需要引用命名空间System.Data.OleDb 。 6.3.3 使用存储过程 存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程具有允许标准组件式编程、能够实现较快的执行速度、能够减少网络流量等优点。
8
6.4 使用DataReader ADO.NET DataReader从数据库中检索只读、只进的数据流。所谓“只读”,是指在数据阅读器DataReader上不可更新、删除、增加记录,所谓“只进”是指记录的接收是顺序进行且不可后退的,数据阅读器DataReader接收到的数据是以数据库的记录为单位的。查询结果在查询执行时返回,并存储在客户端的网络缓冲区中,直到用户使用DataReader的Read方法对它们发出请求。 随.NET Framework提供的每个.NET Framework数据提供程序包括一个DataReader 对象:OLE DB .NET Framework数据提供程序包括一个OleDbDataReader对象,SQL Server .NET Framework数据提供程序包括一个SqlDataReader对象,ODBC .NET Framework数据提供程序包括一个OdbcDataReader对象,Oracle .NET Framework数据提供程序包括一个OracleDataReader对象。
9
6.5填充数据集 6.5.1 使用DataAdapter 数据适配器DataAdapter表示一组数据命令和一个数据库连接,它们用于填充 DataSet 和更新数据源。DataAdapter经常和DataSet一起配合使用,作为DataSet 和数据源之间的桥接器以便检索和保存数据。 下面是几种数据库使用数据适配器的方法: Microsoft SQL Server数据库:通过将SqlDataAdapter与其关联的SqlCommand和 SqlConnection对象一起使用,从而提高总体性能 。 对于支持OLE DB的数据源:使用DataAdapter及其关联的OleDbCommand和OleDbConnection对象。 对于支持ODBC的数据源:使用DataAdapter及其关联的OdbcCommand和OdbcConnection对象。 对于Oracle数据库:使用DataAdapter及其关联的OracleCommand和OracleConnection 对象。
10
6.5填充数据集 6.5.2使用DataTable、DataColumn和DataRow
DataSet由一组DataTable对象组成,它具备存储多个表数据以及表间关系的能力。这些表就存储在DataTable对象中,而表间的关系则用DataRelation对象表示。DataTable对象中包含了DataRow和DataColumn对象,分别存放表中行和列的数据信息。Tables属性可以获取包含在DataSet中的表的集合。DataTable的Rows属性表示数据表中行的集合,DataTable的Columns属性表示数据表中列的集合。
11
利用DataSet对象还可以完成数据库内容的增加、删除。当插入数据时,具体的执行步骤如下所示:
6.5填充数据集 6.5.3 访问数据集 利用DataSet对象还可以完成数据库内容的增加、删除。当插入数据时,具体的执行步骤如下所示: (1)建立数据库连接。 (2)建立SqlCommand对象,设置要执行的SQL语句。 (3)建立并实例化一个SqlDataAdapter对象。为SqlDataAdapter的InsertCommand属性创建一个执行Insert语句的SqlCommand,并赋值给InsertCommand属性。 (4)建立一个DataSet对象,用于接收执行SQL命令返回的数据集。 (5)填充数据集。 (6)通过DataSet对象获取要操作数据表的DataTable对象。 (7)通过DataTable对象的NewRow方法返回一个新的数据行,并对新行进行赋值。
12
6.5填充数据集 (8)通过DataTable对象Rows集合的Add方法把新建的DataRow对象添加到Rows集合中。
(9)调用SqlDataAdapter对象的Update方法把修改提交的数据库中。 当要删除数据时,可以通过DataRow对象的Delete方法删除当前行。需要注意的是,如果试图通过Rows集合的Remove方法或者RemoveAt方法删除行,实际上并不能正确的进行删除。 更新数据集和插入、删除数据的操作类似,首先获得DataSet的某个数据表的DataTable对象,然后再获得要更新数据的行对象DataRow,最后直接对DataRow对象进行修改,并更新数据库即可完成数据的修改工作。
Similar presentations