《数据库编程(ADO1NET)课件》由会员分享,可在线阅读,更多相关《数据库编程(ADO1NET)课件(67页珍藏版)》请在金锄头文库上搜索。
1、C#数据库编程(ADO.NET),中国地质大学(武汉)杨之江 ,内容,ADO.NET 数据库访问 C#数据库的Windows编程 C#数据库的Web编程 QDatabase=mydatabase; uid=myuser;pwd=mypassword); mySqlConnection.Open(); /打开刚建立的与SQL Server数据库的连接 mySqlConnection.Close(); /关闭连接 (2)采用ADO.NET Managed Provider连接到数据源 连接Access数据库的语句: OleDbConnection myOleDbConnection=new Ole
2、DbConnection(Provider=Microsoft.Jet.OLEDB.4.0; Data Source=mypathmyfile.mdb; ConnectionTimeout=30); MyOleDbConnection.Open(); /打开连接 MyOleDbConnection.Close(); /关闭连接,1.2 ADO.NET的数据访问对象-Command对象,Command对象用来读取或修改数据源的数据,如进行对数据库数据的增、删、改等数据库操作。该对象包含可应用于数据库的所有操作命令,操作命令也可以是存储过程调用、Update语句或返回结果的语句。还可将输入和输出参
3、数以及返回值用作命令语法的一部分。 Command对象有两种形式: OleDbCommand用于ADO Managed Proider支持的数据源。 SqlCommand用于SQL Server数据库。 下面的语句说明如何对数据库发出Insert语句(以sqlCommand为例)。 SqlConnection myConnection = new SqlConnection(Server=myservername; Database=northwind;uid=myuser;pwd=mypassword); SqlCommand mySqlCommand = new SqlCommand(In
4、sert into 表名 (字段名1, 字段名2, 字段名3, 字段名4,) Values (值1, 值2, 值3, 值4,), myConnection); myConnection.Open(); mySqlCommand.ExecuteNonQuery(); myConnection.Close();,1.2 ADO.NET的数据访问对象- Command公共属性,1.2 ADO.NET的数据访问对象- Command公共方法,1.2ADO.NET的数据访问对象-DataReader对象,ADO的Recordset对象要读1000行数据库记录时,必须为这1000行记录分配内存,并且一直“
5、连接”直至连接的生命周期结束。 ADO.NET新增了DataReader对象,DataReader对象以只读、只向前的方式提供了一种快速读取数据库数据的方式,该对象仅与数据库建立一个只读的且仅向前的数据流,并在当前内存中每次仅存放一条记录,所以DataReader对象可用于只需读取一次的数据,即可用于一次性地滚动读取数据库数据。因此,使用DataReader可提高应用程序的性能,并减少系统开销。 创建SqlDataReader对象必须调用 SqlCommand 对象的ExecuteReader方法 当创建 Command 对象的实例后,可调用Command.ExecuteReader 从数据源
6、中检索行,从而创建一个 DataReader对象,如以下示例所示。 SqlConnection myConnection = new SqlConnection(Server=myservername; Database=northwind; uid=myuser;pwd=mypassword); SqlCommand mySqlCommand = new SqlCommand(select * from 表名, mySqlConnection); mySqlConnection.Open(); myReader = mySqlCommand.ExecuteReader(); DataRead
7、er 提供未缓冲的数据流,该数据流使过程逻辑可以有效地按顺序处理从数据源中返回的结果。由于数据不在内存中缓存,所以在检索大量数据时,DataReader 是一种适合的选择。每次使用完DataReader对象后都应调用Close方法。 如果Command包含输出参数或返回值,那么在 DataReader 关闭之前,将无法访问这些输出参数或返回值。,1.2 ADO.NET的数据访问对象- DataReader对象公共属性,1.2 ADO.NET的数据访问对象DataReader对象公共方法,1.2 ADO.NET的数据访问对象-DataAdapter对象,DataAdapter 对象在 DataS
8、et 与源数据之间起到桥梁的作用。DataAdapter对象使用Fill()方法将数据填充到DataSet的DataTable中去,并提供将异动的数据更新到数据源的能力。 DataAdapter 对象为我们隐藏了与Connection和Command 对象沟通的细节。 DataAdapter 使用 Connection 来连接数据源并取出数据,使用 Command 对象从数据源中检索数据并将更改保存到数据源中。在使用 Microsoft SQL Server 数据库时,使用数据提供程序特定的 SqlDataAdapter(以及与其关联的 SqlCommand 和 SqlConnection)能
9、够提高整体性能。对于其他支持 OLE DB 的数据库,则使用 OleDbDataAdapter 对象及其关联 OleDbCommand 和 OleDbConnection 对象。 DataAdapter 对象提供了一组属性,用于将数据库中的数据填充至DataSet,即将数据从DataSet更新到数据库,2 ADO.NET访问常用数据库,2.1 SQL Server 2000 2.2 Oracle 2.3 Access 2.4 企业库,2.1 SQL Server 2000,SQL Server数据库是在C#数据库应用程序开发过程常用的数据库,可以通过以下方式访问SQL Server数据库: S
10、qlConnection OleDbConnection,2.1 SQL Server 2000,1.SqlConnection SqlConnection是ADO.NET中专门针对SQL Server数据库的访问通道,利用SqlConnection方式访问SQL Server数据比其他方式访问速度更快。,2.1 SQL Server 2000,2. OleDbConnection 根据SQL Server数据库身份验证方式的不同对应不同的连接字符串。,2.2 Oracle,Oracle是一个多用户的关系型数据库管理系统,可以运行在多种工作站和微型计算机上。在大型项目中经常使用Oracle数据
11、库。可以使用以下方式访问Oracle数据库: OracleConnection OleDbConnection,2.2 Oracle,1OracleConnection 在安装了Oracle数据库的计算机上开发.NET应用程序,会有OracleConnection对象。与SqlConnection类似,OracleConnection是ADO.NET中专门针对Oracle数据库的访问通道。采用OracleConnection方式连接Oracle数据库时,连接字符串如下: Data Source=MyOracleDB;User Id=myUsername;Password= myPassword
12、;Integrated Security=no;,2.2 Oracle,【例】用OracleConnection连接Oracle数据库 OracleConnection myOracleConnection=new OracleConnection(Data Source=MyOracleDB;User Id=myUsername;Password= myPassword;Integrated Security=no;); MyOracleConnection.Open(); /打开连接 MyOracleConnection.Close(); /关闭连接,2.2 Oracle,2OleDbCo
13、nnection 采用OleDbConnection方式连接Oracle数据库时,连接字符串如下: Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=myUsername;Password=myPassword; 【例】用OleDbConnection连接Oracle数据库 OleDbConnection myOleDbConnection=new OleDbConnection(Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=myUsername;Password=m
14、yPassword;); MyOleDbConnection.Open(); /打开连接 MyOleDbConnection.Close(); /关闭连接,2.3 Access,Access是Microsoft Office家族的一个成员之一,它是基于SQL的关系型数据库,功能强大、使用方便,常常用于小型项目中。在.Net中使用Access数据库只能通过OleDbConnection方式连接,连接字符串如下: Provider=Microsoft.Jet.OLEDB.4.0;Data Source=somepathmydb.mdb; ,2.3 Access,【例】用OleDbConnectio
15、n连接Access数据库 OleDbConnection myOleDbConnection=new OleDbConnection(Provider=Microsoft.Jet.OLEDB.4.0; Data Source=mypathmyfile.mdb; ); MyOleDbConnection.Open(); /打开连接 MyOleDbConnection.Close(); /关闭连接 即“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=mypathmyfile.mdb; ”,2.4 企业库(Enterprise Library),由一组应用程
16、序块组成(Application Block),每个应用程序块旨在解决开发企业级应用程序时的某一方面 提高企业级应用程序的可维护性和扩展性 最大限度的重用,可作为公司的积累(开发任何企业级应用都要用到的基础部分,是最佳实践 ) 微软的基准代码,可以通过学习源代码,提高编程能力(源代码是可以修改和扩展而不用遵照任何协议。这样就可以定制自己的应用程序块 ) 建立更优雅更灵活的企业级应用程序 参考: MicrosoftEnterpriseLibrary高效开发指南 清华大学出版社,企业库组成,缓存(Caching): 允许开发人员在程序中合并一个本地缓存器 配置(Configuration): 允许程序读入和编写配置信息 加密(Cryptography): 允许开发人员在程序中使用加密技术和信号功能。 数据访问(Data Access):允许开发人员在程序中使用标准的数据库功能 异常处理(Exception Handing):允许开发人员和规范制定者建立一套用于处理异常的统一策略 日志和规范应用程序(Logging and Instru