项目四Web应用开发中的数据访问.ppt
《项目四Web应用开发中的数据访问.ppt》由会员分享,可在线阅读,更多相关《项目四Web应用开发中的数据访问.ppt(190页珍藏版)》请在三一办公上搜索。
1、项目四 Web应用开发中的数据访问,任务1 用户注册功能的实现任务2 在线购物时商品管理功能的实现任务3 购物车的实现任务4 留言板的功能实现,任务1 用户注册功能的实现,任务场景:,几乎所有的Web系统中,都需要实现用户注册功能,即有一个注册页面。项目2的任务1完成了用户注册的页面设计和数据验证。本任务使用ASP.NET 3.5提供了ADO.NET数据访问技术,轻松地实现应用程序连接数据库,并将用户注册的信息保存到数据库中。,知识要点,数据访问模型数据访问原理ADO.NET访问技术使用Connection对象连接数据库编写代码创建数据库连接使用Web.Config文件定义数据连接字符串使用C
2、ommand对象操作数据库Command对象使用Command对象操作数据使用DataReader对象读取数据SqlDataReader对象的属性和方法使用SqlDataReader对象,4.1 数据访问模型,数据访问原理ADO.NET访问技术,数据访问原理,通过对ADO.NET的引用,达到了获取数据和操作数据的目的。数据访问涉及四个主要的组件:Web应用程序(ASP.NET)、数据层(ADO.NET)、数据提供程序以及数据源。,数据访问原理,数据存储(Data Store)数据存放的源头,包括关系数据库、XML文件、Web服务、平面文件或诸如Microsoft Excel电子数据表程序中的数
3、据。数据提供程序(Provider)ASP.NET提供不同数据源的提供程序,开发人员只需编写一组数据访问代码就能访问各种类型的数据。数据操作层(DataLayer)通过ADO.NET API定义的抽象层,不论何种数据源,提取信息的过程都具有相同的关键类和步骤。Web应用程序层一系列数据控件,ADO.NET访问技术,一种将Microsoft.NET的Web应用程序以及Microsoft Windows应用程序连接到诸如SQL Server数据库或XML文件等数据源的技术。专门为Internet无连接的工作环境而设计,它提供了一种简单而灵活的方法,便于开发人员把数据访问和数据处理集成到Web应用程
4、序中。,ADO.NET访问技术,ADO.NET组成ADO.NET包括两个核心组件:.NET Framework数据提供程序和DataSet数据集。数据提供程序数据提供程序用于连接到数据库、执行命令和检索结果。数据提供程序中包含的核心对象,ADO.NET访问技术,ADO.NET组成.NET Framework提供了4个数据提供程序:SQL Server.NET Framework数据提供程序OLE DB.NET Framework数据提供程序ODBC.NET Framework数据提供程序Oracle.NET Framework数据提供程序,ADO.NET访问技术,ADO.NET组成DataSe
5、t对象用于存储从数据源中收集的数据。处理存储在DataSet中的数据并不需要ASP.NETWeb窗体与数据源保持连接,仅当数据源中的数据随着改变而被更新的时候,才会重新建立连接。与DataSet相关的对象,ADO.NET访问技术,使用ADO.NET访问数据ADO.NET提供了一组丰富的对象,用于对任何种类的数据存储的连接式或断开式访问。在连接式访问模式下,连接会在程序的整个生存周期中保持打开,而不需要对状态进行特殊处理。断开方式的处理模式可以为应用程序提供良好的性能和伸缩性。,使用ADO.NET访问数据,断开式数据访问模式,断开式数据访问模式指的是客户端不直接对数据库进行操作。使用断开式数据访
6、问模式的基本过程使用连接对象Connection连接并打开数据库。使用数据适配器DataAdapter对象填充数据集DataSet。关闭连接。对DataSet进行更新操作,操作完成后打开连接。使用数据适配器DataAdapter更新数据库,关闭连接。断开式数据访问模式适用于远程数据处理、本地缓存数据及执行大量数据的处理,而不需要与数据源保持连接的情况。,连接式数据访问模式,指用户在操作过程中,一直与数据库保持连接。一般使用命令对象Command进行数据库相关操作,并使用DataReader对象以只读方式返回数据并显示,从而提高应用程序的性能。在实际应用中,选择数据访问模式的基本原则是首先满足需
7、求,然后考虑性能优化。,4.2 使用Connection对象连接数据库,访问数据库的第一项工作就是和数据库建立连接,然后通过该连接向数据库发送命令并读取返回的数据,这些在ADO.NET中由Connection对象来实现。编写代码创建数据库连接使用Web.Config文件定义数据连接字符串,编写代码创建数据库连接,使用SQL Server.NET数据提供程序连接SQL Server 2005数据库SQL Server.NET数据提供程序提供的相关类在命名空间下需要使用SqlConnection对象来连接数据库通过设置SqlConnection对象的ConnectionString属性将建立连接的
8、详细信息传递给SqlConnection对象,ConnectionString中常见的属性,ConnectionString中常见的属性,连接字符串,连接字符串可以在创建SqlConnection对象时作为参数传递,也可以通过ConnectionString属性来设置。创建网站到本机上的SQLServer连接SqlConnection sqlconn=new SqlConnection(Server=(local);Database=SuperMarketDB;Integrated Security=SSPI;“);创建网站到远程服务器MyServer的连接并设置连接超时时间为60秒。SqlC
9、onnection sqlconn2=new SqlConnection(Userid=aa;Passord=abcd;Server=MyServer;Database=SuperMarketDB;Connection Timeout=60;);,SqlConnection对象的主要方法,编写代码创建数据库连接,使用OLEDB.NET数据提供程序连接Access数据库访问Access数据库,需要SQL OLEDB.NET数据提供程序。SQL OLEDB.NET数据提供程序,提供相关类在命名空间下,需要OleDBConnection对象来连接数据库。OleDBConnection和SqlConn
10、ection的使用基本是一样的,唯一的区别就是ConnectionString的取值有所不同,编写代码创建数据库连接,使用OLEDB.NET数据提供程序连接Access数据库访问Access数据库StudentMS.mdb的示例OleDbConnection oledbconn;oledbconn.ConnectionString=Provider=Microsoft.Jet.OLEDB.4.0;DataSource=f:SuperMarketDB.mdb;oledbconn.Open();oledbconn.Close();,使用Web.Config文件定义数据连接字符串,将连接字符串保存在
11、Web.config文件中OleDbConnection oledbconn;oledbconn.ConnectionString=Provider=Microsoft.Jet.OLEDB.4.0;DataSource=f:SuperMarketDB.mdb;oledbconn.Open();oledbconn.Close();在窗体中创建连接对象读取连接字符串string myconnstr=ConfigurationManager.ConnectionStringsDBConnStr.ConnectionString;SqlConnection sqlconn=new SqlConnect
12、ion(myconnstr);sqlconn.Open();,4.3 使用Command对象操作数据库,Command对象SqlCommand对象的属性SqlCommand对象的方法使用Command对象操作数据使用Command对象操作数据在操作数据时使用SQL参数,SqlCommand对象的属性,SqlCommand对象的属性,指定T-SQL命令作为SqlCommand对象的文本SqlCommand cmd;cmd.Connection=sqlconn;cmd.CommandType=CommandType.Text;cmd.CommandText=Select*from T_Ware;使
13、用StordProcedure命令类型调用存储过程。SqlCommand cmd;cmd.Connection=sqlconn;cmd.CommandType=CommandType.StoredProcedure;cmd.CommandText=GetAllWares;,SqlCommand对象的方法,SqlCommand对象的方法,SqlCommand提供了3种不同的方法在SQL Server上执行T-SQL语句,这3种方法的工作方式非常相似。每种方法都会将在SqlCommand对象中形成的命令详细信息,传递给指定的连接对象,再通过SqlConnection对象在SQL Server上执行
14、T-SQL语句,最后根据语句执行结果生成一组数据,SqlCommand对象的方法,ExecuteNonQuery返回受T-SQL语句影响的行数适合执行不返回结果集的T-SQL命令。数据定义语句(DDL)命令,如Create Table、Create View、Drop Table;数据操作语言(DML)命令,如Insert、Update和Delete;不返回结果集的存储过程。,SqlCommand对象的方法,ExecuteNonQuerystring myconnstr=ConfigurationManager.ConnectionStringsDBConnStr.ConnectionStri
15、ng;SqlConnection sqlconn=new SqlConnection(myconnstr);SqlCommand cmd;cmd.Connection=sqlconn;cmd.CommandType=CommandType.Text;sqlconn.Open();,SqlCommand对象的方法,ExecuteNonQuerycmd.CommandText=Create Table TempTable(IDCol Int);cmd.ExecuteNonQuery();cmd.CommandText=Insert TempTable(IDCol)Values(1);cmd.Exe
16、cuteNonQuery();cmd.CommandText=Drop Table TempTable;cmd.ExecuteNonQuery();sqlconn.Close();,SqlCommand对象的方法,ExecuteReader返回DataReader对象String str=“select SPMC from T_SPXX”;SqlCommand scmd=new SqlCommand(str,sqlconn);SqlDataReader sdr=scmd.ExecuterReader();while(sdr.Read()Label1.Text=sdr“SPMC”.ToStrin
17、g()+”;,SqlCommand对象的方法,ExecuteScalar返回一个单值.多用于使用聚合函数的情况,例如COUNT(*)之类的聚合函数。String str=select count(*)from T_SPXX;SqlCommand scmd=new SqlCommand(str,conn);int count=Convert.toInt32(scmd.ExecuteScalar();,使用Command对象操作数据,使用Command对象实现数据库的操作是典型的ADO.NET连接式操作模式。其基本步骤包括:打开到数据库连接。创建新的Command对象。定义T-SQL命令。执行T-
18、SQL命令。关闭数据库连接。,使用Command对象操作数据,获取用户在文本框中输入的姓名、性别、职务、公司和联系方式等信息,并将获取的信息插入到数据库中。string strName=TextBox1.Text;string strSex=TextBox2.Text;string strPost=TextBox3.Text;string strCompany=TextBox4.Text;string strContact=TextBox5.Text;string connstr=ConfigurationManager.ConnectionStringsConnStr.ConnectionS
19、tring;,使用Command对象操作数据,SqlConnection conn=new SqlConnection(connstr);conn.Open();string SQLStr=insert into T_Ware values(+strName+,+strSex+,+strPost+,+strCompany+,+strContact+);SqlCommand cmd=new SqlCommand(SQLStr,conn);cmd.ExecuteNonQuery();conn.Close();,在操作数据时使用SQL参数,在实际应用中,常常需要用户在页面上输入信息,并将这些信息插入
20、到数据库中。只要允许用户输入数据,就有可能出现输入错误,并可能对Web应用程序创建和执行SQL代码产生致命的影响。为了解决这个问题,除了对输入控件进行检查之外,还可以在生成T-SQL命令时,不使用窗体变量而使用SQL参数来构造连接字符串。SQL参数不属于SQL查询的可执行脚本部分。由于错误或恶意的用户输入不会处理成可执行脚本,所以不会影响SQL查询的执行结果。,在操作数据时使用SQL参数,Parameters属性和SqlParameter对象要在ADO.NET对象模型中使用SQL参数,需要向Command对象的Parameters集合中添加Parameter对象。在使用SQL Server.N
21、ET数据提供程序时,要使用的Parameter对象的类名为SqlParameter。SqlParameter对象的属性,在操作数据时使用SQL参数,Parameters属性和SqlParameter对象使用SQL参数的基本步骤使用Parameters构建SqlCommand命令字符串。声明SqlParameter对象,并赋值。将SqlParameter对象赋值给SqlCommand对象的Parameters属性。string strName=TextBox1.Text;string strSex=TextBox2.Text;string strPost=TextBox3.Text;string
22、 strCompany=TextBox4.Text;string strContact=TextBox5.Text;string connstr=ConfigurationManager.ConnectionStrings“ConnStr”.ConnectionString;,在操作数据时使用SQL参数,SqlConnection conn=new SqlConnection(connstr);conn.Open();string SQLStr=insert into T_Ware values(strName,strSex,strPost,strCompany,strContact);Sql
23、Parameter paraName1=new SqlParameter(strName,strName);SqlParameter paraName2=new SqlParameter(strSex,strSex);SqlParameter paraName3=new SqlParameter(strPost,strPost);SqlParameter paraName4=new SqlParameter(strCompany,strCompany);SqlParameter paraName5=new SqlParameter(strContact,strContact);SqlComma
24、nd cmd=new SqlCommand(SQLStr,conn);,在操作数据时使用SQL参数,cmd.Parameters.Add(paraName1);cmd.Parameters.Add(paraName2);cmd.Parameters.Add(paraName3);cmd.Parameters.Add(paraName4);cmd.Parameters.Add(paraName5);cmd.ExecuteNonQuery();conn.Close();,4.4 使用DataReader对象读取数据,DataReader对象定义如何根据连接读取数据。DataReader对象的特点主
25、要有:DataReader只能读取数据,不能对记录进行数据的编辑、添加和删除。DataReader只能在记录间“向前”移动,一旦移动到“下一个”记录,就不能再回到前一个记录了,除非再执行一遍所有的SQL查询。DataReader不能在IIS内存中存储数据,数据直接在页面对象上显示。DataReader是工作在连接模式下的,应用程序在读取数据时,数据库的连接必须处于打开状态。,SqlDataReader对象的属性,SqlDataReader对象的方法,SqlDataReader对象的方法,使用SqlDataReader对象,获取某一表中的字段名,string SQLStr=select*from
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 项目 Web 应用 开发 中的 数据 访问
链接地址:https://www.31ppt.com/p-5889777.html