数据库操作第5章我们应该清醒地意识到欲在网络编程领域有所建树,必须先成为编程高手,努力吧,同学们,功到自然成!本章知识结构框图数据库操作概述数据库的连接连线式数据库操作离线式数据库操作外基本定义1个对象3种数据库连接实例定义与功能3个对象5个步骤1个实例定义与功能2个对象5个步骤1个实例基本定义1个类库5个对象学习激励与案例导航网易公司首席架构设计师丁磊丁磊,网易公司首席架构设计师,1971年生于浙江宁波。2007福布斯中国富豪榜排名第63位,资产75亿元。1997年6月创立网易公司。丁磊将网易公司从一个10几个人的私企发展到今天拥有超过1500多名员工,在美国公开上市的知名互联网技术企业。据易观国际数据统计网易在中国网游市场份额中排名第二。第5章数据库操作5.1ASP.NET数据库操作概述5.2数据库的连接5.3连线式操作数据库5.4数据库的离线操作第5章数据库操作5.1ASP.NET数据库操作概述5.2数据库的连接5.3连线式操作数据库5.4数据库的离线操作5.1.1数据库概述ASP.NET的四大板块数据库操作服务器控件常见对象C#语言基础常用的数据库管理系统OracleSybaseInformixMicrosoftSQLServerVisualFoxProMicrosoftAccess最常用的以MicrosoftSQLServer为主5.1.2ADO.NET(ActiveDataObject)ADO.NET共有5个常用对象,它们是Connection、Command、DataReader、DataSet、和DataAdapter,如表5-1所示。表5-1ADO.NET常用对象对象功能Connection数据库连接对象,用于建立数据库的连接。Command用于执行数据库命令,针对不同的数据库提供了SqlCommand、OleDbCommand、Odbcommand和OracleCommand几种访问方式,同时也提供从数据库中检索数据、插入数据、修改数据和删除数据的功能。DataReader用于读取数据库中的数据,其优点是速度比较快,缺少是但功能有限。DataSetDataSet对象是数据在内存中的表示形式。它包括多个DataTable对象,而DataTable包含列和行,就象一个普通的数据库中的表一样。DataAdapter数据库适配器,DataSet对象与数据库之间的桥梁,它通过Fill方法把数据库中的数据映射填充到DataSet对象中,通过Update方法更新数据库中的数据,使DataSet对象中的数据与数据库中的数据保持一致。5.1.3ADO.NET中的各类数据库接口SQLServer.NET用来访问SQLServer7以及更高级版本ADO.NET提供了四种数据驱动程序OkeD.NET用来访问包括SQL以及其他类型的数据库OracleDb.NET专门访问Oracle8iDataReader及以上版本的数据库,ODBC.NET用来访问ODBC数据源第5章数据库操作5.1ASP.NET数据库操作概述5.2数据库的连接5.3连线式操作数据库5.4数据库的离线操作6.2.1数据库连接概述引入命名空间,各种数据库的命名空间各不相同1对Connection对象实例化2设置连接语句3打开连接4数据库连接并不复杂,只要执行下列步骤即可完成。1.引入命名空间,各种数据库的命名空间各不相同。如果使用的是SQLServer数据库,则在编写的程序头部写下如下代码:usingSystem.Data.SqlClient;一如果使用的是Access数据库,则在编写的程序头部写下如下代码:usingSystem.Data.OleDb;二如果使用的是Oracle数据库,则在编写的程序头部写下如下代码:usingSystem.Data.OracleClient。三2.对Connection对象实例化SQLServer数据库SqlConnectionsqlconstr=newSqlConnection();ACCESS数据库OleDbConnectionoledbconnstr=newOleDbConnection();Oralce数据库OleDbConnectionOracleconnstr=newOracleConnection();其中斜体部分由编程者自行命名,但成熟的程序员多命名为:sqlconstr,即sql(SQL数据库)与connection(连接)及string(字符串)三个单词的缩写,合起来意为SQL数据库连接字符串。对象实例化:初学者往往不理解什么是对象实例化,我们知道,在C语言中使用变量要先声明,让计算机知道这是一个变量。同样在使用对象的时候也要先声明,告诉计算机sqlconstr是代表数据库连接的一个特殊“变量”。3.设置连接语句(1)SQLServer数据库:(2)ACCESS数据库:(3)Oracle数据库:sqlconstr.ConnectionString=server=localhost;database=test;uid=sa;pwd='',也可以用sqlconstr.ConnectionString=DataSource=localhost;InitialCatalog=test;UserID=sa;Password='';3.设置连接语句(1)SQLServer数据库:(2)ACCESS数据库:(3)Oracle数据库:oledbconnstr.ConnectionString=provider=Microsoft.Jet.OLEDB.4.0;datasource='c:\\lx\\test.mdb';3.设置连接语句(1)SQLServer数据库:(2)ACCESS数据库:(3)Oracle数据库:Oracleconnstr.ConnectionString=server=MyOraServer;Provider=MSDAORA;userid=sa;password=’’”。3.设置连接语句(1)SQLServer数据库:(2)ACCESS数据库:(3)Oracle数据库:4.打开连接表5-2Connection对象常用属性及方法属性及方法功能ConnectionString属性用于读取或设置打开数据库的字符串ConnectionTimeout属性用于读取数据库尝试连接秒数DataSource属性用于读取数据库所在位置及所在位置的服务器名称或文件夹名称Database属性用于读取或设置连接的数据库名称State属性用于读取当前连接状态Provider属性用于读取数据库驱动程序Open()方法打开数据连接Close()方法关闭数据连接5.2.2连接到Access数据库Access数据库的连接字符串的属性如表5-3所示。表5-3OLEDB.NET数据库连接字符串属性属性说明Datasource数据源,一般为数据库文件的物理路径Provider数据源的驱动程序,一般使用Microsoft.jft.OLEDB.4.0驱动程序。还可以使用SQLOLEDB驱动程序连接到SQLServer6.5即以上版本数据库,使用MSDAORA驱动程序可以连接到Oracle7数据库Database数据库的名称,一般为应用程序使用的数据库名称Connectiontimeout表示连接超时的时间,默认为15秒5.2.3连接到SQLServer数据库连接SQLServer数据库的字符串相关属性如表5.4所示。表5-4SQLServer数据库连接字符串常用属性属性说明DatasourceSQLServer数据源,即服务器所在机器名称或者是服务器IP地址Server服务器如数据库所在服务器名称Database数据库名称UserIDSQLServer数据库的用户IDPasswordSQLServer数据库的用户密码Pooling设置是否使用数据库的连接池IntergratedSecurity设置登陆数据库时是否使用系统集成验证Connectiontimeout表示连接超时的时间,默认为15秒5.2.4连接到Oracle数据库Oracle数据库的连接字符串相关属性如表6-5所示。表5-5Oracle数据库连接字符串常用属性属性说明DatasourceOracle数据库的数据源,即服务器名称也可是服务器IP地址Server服务器如数据库所在服务器名称Database数据库名称UserIDOracle数据库的用户IDPasswordOracle数据库的用户密码Pooling设置是否使用数据库的连接池IntergratedSecurity设置登陆数据库时是否使用系统集成验证Connectiontimeout表示连接超时的时间,默认为15秒5.2.5数据库连接实例(1)启动VisualStudio2008,在菜单依次单击【文件】【新建】【网站】【ASP.NET网站】;(2)在设计窗口页面上点右键,选择查看代码;(3)在Page_load事件输入表5-6代码;表5-6使用Connection对象连接数据库代码及解释程序代码对应注释usingSystem.Data.SqlClient;publicpartialclass_5_01:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){SqlConnectionsqlconstr=newSqlConnection();sqlconstr.ConnectionString=server=localhost;database=MyBookShop;uid=sa;pwd='';sqlconstr.Open();Response.Write(''数据库已经打开);sqlconstr.Close();}}引用SqlClient命名空间Connection对象实例化通过ConnectionString来获取或设置连接语句打开连接关闭连接(4)按下CTRL+F5运行程序,得到如下程序界面:图6-1数据库连接实例第5章数据库操作5.1ASP.NET数据库操作概述5.2数据库的连接5.3连线式操作数据库5.4数据库的离线操作5.3.1连线式操作数据库概述连线式数据库操作也有它自身的优点是什么呢?那就是它能够高效快速的访问数据库。ConnectionCommand+连线式数据库三个对象+DataReader5.3.2连线式操作数据库的流程设定数据库连接字符串1打开数据库2使用Command对象向数据库下达操作命令。3使用DataReader对象进行各种读取操作。4关闭数据库55.3.3连线式所使用的Command对象详解使用Command对象执行SQL语句,并返回相应的结果。使用Command对象执行存储过程。表5-7给出了Command对象常用属性及方法。表5-7Command对象常用属性及方法属性说明CommandText用于读取或设置要执行的SQL语句或存储过程CommandTimeout用于读取或设置执行命令需要等待的时间CommandType用于读取或设置CommandType命令的类型Connection用于读取或设置命令所使用的连接对象Parameters用于读取与该命令关联的参数集合Transaction用于读取或设置执行命令的任务ExecuteReader()执行查询,并返回查询数据ExecuteScalar()执行查询,并返回查询数据第一行第一列数据值ExecuteNonQuery()执行非查询命令,并返回受影响的行数ExecuteXmlReader执行查询,返回XML数据Cancel取消执行命令5.3.3.1创建Command对象(1)先声明一个Command对象,然后设置相应的CommandText和Connection属性。(2)创建Command对象时直接对CommandText和Connection属性进行赋值。以下语句给出了两种创建Command对象的方式。//第一种方式SqlCommandmyCommand