《项目五掌握aspnet数据库操作》由会员分享,可在线阅读,更多相关《项目五掌握aspnet数据库操作(104页珍藏版)》请在金锄头文库上搜索。
1、项目五掌握ASP.NET数据库操作,任务一制作EShopTest网上购物商城用户注册页面 任务二使用Command执行数据库命令 任务三使用DataReader读取数据 任务四使用DataAdapter读写数据 任务五使用DataSet 任务六使用Data List控件 任务七使用Grid View控件,任务一制作EShopTest网上购物商城用户注册页面,【任务要点】 操作数据库的第一步必须是先建立与数据库的连接。Connection对象专门肩负着这样的重任。该对象提供了很多属性和方法以便用户顺利进行连接操作。接下来开始通过实例学习Connection对象及使用。 【案例1】 测试与SQLS
2、erver数据库建立连接,下一页,返回,任务一制作EShopTest网上购物商城用户注册页面,【具体步骤】 (1)打开Visual Studio 2005新建网站EShopTest,位置选择文件系统,指定站点文件夹。 (2)添加Web窗体并命名为ConnectionTest。 (3)从工具箱中拖一个Label控件到窗体中,并命名该控为lblMessage。 (4)转到窗体的代码视图,在代码中添加引用using System.Data.SqlClient。 (5)双击新建窗体的空白处,在窗体的Page_Load()事件中添加如下代码:,下一页,返回,上一页,任务一制作EShopTest网上购物商
3、城用户注册页面,protected void Page_Load(object sender,EventArgs e) SqlConnection conn=new SqlConnection(); conn.ConnectionString=“server=zhubaimingsql2000;uid=sa;pwd=sa;database=EShop“; conn.Open(); lblMessage.Text=conn.State.ToString(); conn.Close(); ,下一页,返回,上一页,任务一制作EShopTest网上购物商城用户注册页面,【案例2】实现用户注册页面的功能
4、 在项目四的能力大比拼中,已经完成了一个名为Register.aspx页面的制作,在设计模式下界面如图5-2所示。 本窗体用于接收用户输入的数据。但是,这样的窗体在用户将数据保存起来之前,是没有多少用处的,接下来就是现在将要完成的任务,当单击【注册】按钮的时候执行代码将数据保存到数据库中。本项目使用的数据库EShop应用程序中的SQL Server数据库。EShopTest程序中所使用到的表的结构见表5-1表5-4。 实例运行结果如图5-3所示。,下一页,返回,上一页,任务一制作EShopTest网上购物商城用户注册页面,【具体步骤】 (1)在EShopTest应用程序中打开Register.
5、aspx页。 (2)在后台编码文件的顶部添加下列导入语句,因为此处将用到这些命名空间中的类:using System.Data.SqlClient; (3)为注册按钮添加事件处理程序,以前该控件只是为了测试用于验证的不同文本框的内容。现在,该按钮将负责构建和执行SQL INSERT语句(该语句将一条新用户记录添加到数据库中)。,下一页,返回,上一页,任务一制作EShopTest网上购物商城用户注册页面,【背景知识】 一、相关命名空间的引用 1.System.Data命名空间 在程序中,要使用ADO.NET对象模型中的类时,必须首先引用System.Data这个命名空间。因为System.Dat
6、a这个命名空间中包括大部分组成ADO.NET架构的基础对象类别,例如,DataSet对象、DataTable对象、DataColumn对象、DataRelation对象。 2.System.Data.OleDb命名空间 当要使用OLE DB数据提供都来存取数据时,必须引用System.Data.OleDb这个命名空间。System.Data.OleDb这个命名空间定义了OLE DB数据操作组件的对象类别,例如,OleDbConnection类、OleDbCommand类、OleDbDataAdapter类及OleDbDataReader类。,下一页,返回,上一页,任务一制作EShopTest网
7、上购物商城用户注册页面,3.System.Data.SqlClient命名空间 当要使用SQL Server数据提供者存取数据时,必须引用System.Data.SqlClient这个命名空间。System.Data.SqlClient这个命名空间定义了SQL数据操作组件的对象类别,例如,SqlConnection类、SqlCommand类、SqlDataAdapter类及SqlDataReader类。 表5-5简要列举了.NET框架中与ADO.NET相关的几个命名空间。,下一页,返回,上一页,任务一制作EShopTest网上购物商城用户注册页面,二、Connection对象及使用 Conne
8、ction对象主要用于建立与指定数据源的连接,处理访问数据源时所需要的安全设置。如果没有利用Connection对象将数据库打开,是无法从数据库中获取数据的。在这里介绍Connection对象常用的属性和方法。 1.Connection对象的常用方法 (1)Open():利用ConnectionString所指定的属性设置打开一个数据库连接。 (2)Close():关闭与数据库的连接。 (3)CreateCommand():创建并返回一个与Connection相关的Command对象。,下一页,返回,上一页,任务一制作EShopTest网上购物商城用户注册页面,2.Connection对象的常
9、用属性 (1)ConnectionString:获取或者设置用于打开数据库的连接字符串。 (2)ConnectionTimeout:在试图建立连接的过程中,获取在终止操作并产生错误之前等待的时间,也就是超时时间。 (3)DataBase:取得在数据库服务器上要打开的数据库名。 (4)DataSource:取得要连接的SQL Server实例的名称。 (5)State:取得目前连接的状态。,下一页,返回,上一页,任务一制作EShopTest网上购物商城用户注册页面,3.Connection对象的构造函数与Connection对象的创建 Connection对象的创建是由其对应的构造函数构造完成的
10、,但是,不同的数据提供者用不同的类及构造函数完成Connection对象的创建,在SQL Server数据提供者中用类SqlConnection的构造函数创建Connection对象,而在OLE DB数据提供者中用类OleDbConnection的构造函数创建Connection对象。 表5-6分别列出了SQL Server数据提供者中类SqlConnection的两个构造函数的原型及其功能。 表5-7分别型列出了OLE DB数据提供者中类OleDbConnection的两个构造函数的原型及其功能。,下一页,返回,上一页,任务一制作EShopTest网上购物商城用户注册页面,4.连接字符串 (
11、1)连接到SQL Server数据库的连接字符串 要连接一个数据库,需要指明要连接的数据库的种类、数据库服务器名称、数据库名称、登录用户名称以及密码等信息,这些信息就是连接字符串。连接字符串可以在Connection对象的ConnectionString属性里指定。 (2)连接到Access 2000数据库的连接字符串 连接Access数据库机制与连接SQL Server的机制没太大的区别,只是要使用OLE DB数据提供者中的OleDbConnection类来定义Connection对象,且需要对连接字符串中的不同参数指定不同的值即可。,下一页,返回,上一页,任务一制作EShopTest网上购
12、物商城用户注册页面,5.Connection对象的打开和关闭 创建一个Connection对象并指定一个连接字符串并没有打开一个指向数据库的物理连接,需要调用对象的Open方法来打开连接。 Close方法用来关闭Connection对象。不关闭打开的连接会影响系统性能和对应用程序的操作,所以最好关闭连接。SqlConnection和OleDbConnection类提供Open和Close方法。,返回,上一页,任务二使用Command执行数据库命令,【任务要点】 Command对象及使用 【案例1】制作显示商品分类列表的页面 实例运行结果如图5-4所示。 【具体步骤】 (1)在EShopTest
13、应用程序中添加Web窗体并命名为Command_DataReader.aspx。 (2)转到窗体的代码视图,添加引用using System.Data.SqlClient。 (3)在窗体的设计视图下双击页面空白处进入Page_Load()事件,在该事件中添加代码。,下一页,返回,任务二使用Command执行数据库命令,【案例2】制作简单用户登录页面 在项目四中,构建了一个名为Login.aspx的Web窗体,如图5-5所示。 当提交登录页面的时候,会收到用户名和密码,此时需要检查这些值是否能够匹配数据库中的现有用户。而且需要从数据库中得到符合传入信息的用户ID,以便使用这个ID值来为当前用户检
14、索不同的信息事项。 一旦得到了有效的用户ID,需要告知ASP.NET用户已通过验证,可以让他们看到最初请求的页面。 在该示例中,将把刚才讨论的内容运用到代码中,在登录按钮的处理程序中,将使用ExecuteScalar()方法来检索给定登录名和密码的用户ID值。运行后的效果如图5-6所示。,下一页,返回,上一页,任务二使用Command执行数据库命令,【具体步骤】 (1)打开Login.aspx页面,双击【登录】按钮转向后台编码页面。 (2)在页面的顶部位置添加命名空间using System.Data.SqlClient;的引用。 (3)在后台编码页中,按照课本中的代码来进行更改。,下一页,返
15、回,上一页,任务二使用Command执行数据库命令,【背景知识】 Command对象及使用 Command对象提供对数据源执行SQL命令的接口,可以用来对数据库发出一些指令。利用Command对象可调用SQL命令来返回数据、修改数据、运行存储过程,以及发送或者检索参数信息。这个对象架构在Connection对象上,即Command对象是通过连接到数据源的Connection对象来下达命令的。所以Connection连接到哪个数据库,Command对象的命令就下达到哪里。,下一页,返回,上一页,任务二使用Command执行数据库命令,1.Command对象的常用属性 (1)Connection:
16、该属性获取或设定Command对象对数据源的操作要通过哪个Connection对象,例如,如果想通过cn这个Connection对象对数据源进行数据操作,则可以将其Connection属性的值设置为cn,即cmd.Connection=cn(cmd为Command对象的一个实例)。 (2)CommandType:获取或设置CommandText属性中的内容是SQL语句、数据表名称还是存储过程的名称。CommandType可以设置为以下三个值之一。 “CommandType.Text”(默认值) “CommandType.TableDirect” “CommandType.StoredProcedure”,下一页,返回,上一页,任务二使用Command执行数据库命令,(3)CommandText:获取或设置在数据源中执行的SQL语句或存储过程。 (4)CommandTimeout:获取或设置超时时间。 2.Command对象的常用方法 (1)ExecuteNonQuery():可以执行例如Transact_SQL的Insert、Delete、Update命令以及Set命