第9章 ASP NET访问SQL Server 2005数据库 数据库原理及应用 刘金岭_第1页
第9章 ASP NET访问SQL Server 2005数据库 数据库原理及应用 刘金岭_第2页
第9章 ASP NET访问SQL Server 2005数据库 数据库原理及应用 刘金岭_第3页
第9章 ASP NET访问SQL Server 2005数据库 数据库原理及应用 刘金岭_第4页
第9章 ASP NET访问SQL Server 2005数据库 数据库原理及应用 刘金岭_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第9章ASP.NET访问

SQLServer2005数据库

主要内容ASP.NET概述数据库访问技术ADO.NET数据库的连接显示数据库中的数据格式化显示数据库中的数据数据插入数据修改和删除1/31/20231前言ASP.NET是统一的Web开发平台,用来提供开发人员生成企业级Web应用程序所需的服务。ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,用于生成更安全、可伸缩和稳定的应用程序。通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强该ASP应用程序的功能。1/31/202329.1ASP.NET概述

主要内容ASP.NET与ASP的联系和区别ASP.NET的主要优点

1/31/20233ASP.NET与ASP的联系和区别在运行机制上:ASP.NET被设计成首编译方式。在页面代码成功调试完毕后,可以进行人工编译,也可以在系统得到第一次访问请求的时候自动编译源代码,编译后生成了一个基类,以后每次的访问都是直接调用该基类。在编码方式上:ASP.NET采用了代码分离的技术。ASP.NET的代码分离技术使得所有的逻辑代码是被封装在<Script></Script>代码块中的,有程序员负责编写逻辑代码。而HTML布局代码部分则可以由控件和HTML标记组成,可由美工人员负责美工处理。这样的好处不仅使得程序员和美工人员的工作量大大减少,提高程序的编制效率,而且缩短了程序开发周期。

在支持语言上:ASP.NET放弃了对VBScript的支持,新的支持语言包括VisualBasic.NET(有的书中称为Visual

Basic

7.0)、C#(读

C

Sharp),J#等。其中C#是微软推出的一种专门用于ASP.NET新的编程语言,它具有Visual

Basic的编程高效性和C++语言的功能强大性,编程语法规则和C/C++很具有相识性。本章的代码部分都是利用C#编写的。1/31/20234ASP.NET的主要优点(1)执行效率的大幅提高:ASP.NET是把基于通用语言的程序在服务器上运。不像以前的ASP即时解释程序,而是将程序在服务器端首次运行时行编译,这样的执行效果,当然比一条一条的解释强很多。世界级的工具支持:ASP.NET构架是可以用Microsoft公司最新的产品VisualS开发环境进行开发,WYSIWYG(WhatYouSeeIsWhatYouGet,所见即为所得)的编辑。强大性和适应性:ASP.NET可以运行在Web应用软件开发的几乎全部的台上。它对通用语言的基本库,消息机制,数据接口的处理都能无缝的合到ASP.NET的Web应用中。ASP.NET同时也是语言独立化language-independent)的,所以,可以选择一种最适合自己的语言编写程序,或者把程序用很多种语言来编写。简单性和易学性:ASP.NET运行一些很平常的任务,如表单的提交和客端的身份验证,使得分布系统和网站配置变得非常简单。1/31/20235ASP.NET的主要优点(2)高效的管理性:ASP.NET使用一种字符基础的和分级的配置系统,使服务器环境和应用程序的设置更加简单。因为配置信息都保存在简单文本中,新的设置有可能都不需要启动本地的管理员工具就可以实现。一个ASP.NET的应用程序在一台服务器系统的安装中只需要简单的拷贝一些必需的文件,不需要系统的重新启动。多处理器环境的可靠性:ASP.NET已经被设计成为一种可以用于多处理器的开发工具,它在多处理器的环境下用特殊的无缝连接技术,将很大的提高运行速度。即使现在的ASP.NET应用软件是为一个处理器开发的,将来多处理器运行时不需要任何改变都能提高其效能,但现在的ASP做不到这一点。自定义性和可扩展性:ASP.NET设计时考虑了让网站开发人员可以在自己的代码中定义“Plug-In”的模块。这与原来的包含关系不同,ASP.NET可以加入自己定义的各种组件。1/31/202369.2数据库访问技术ADO.NET

主要内容ADO.NET概述数据访问模式

1/31/20237ADO.NET概述(1)ADO.NET是.NETFramework的一部分,是一种全新的数据库访问技术。ADO.NET包含两个核心组件,分别是.NETFramework数据提供程序和数据集DataSet。1..NETFramework数据提供程序NETFramework数据提供程序用于连接到数据库、执行命令和检索结果。数据提供程序中包含的核心对象及其说明如表所示。对象说明Collection建立与特定数据源的连接Command对数据源执行操作命令DataReader提供一个来自数据库的快速、仅向前的只读数据流DataAdapter将数据传送到DataSet和基础数据源,或者从数据源传出1/31/20238ADO.NET概述(2).NETFramework提供了四个数据提供程序:SQLServer.NETFramework数据提供程序、OLEDB.NETFramework数据提供程序、ODBC.NETFramework数据提供程序和Oracle.NETFramework数据提供程序。组成ADO.NET的各个类被包含在以下名称空间中:System.Data.SqlClientSystem.Data.OleDbSystem.Data.OdbcSystem.Data.OracleClient下面对前两类数据提供程序进行介绍。SQLserve.NETFramework数据提供程序主要使用它自身的协议与SQLServer通信。由于它经过了优化,所以对SQLServer数据库的访问性能较高。该数据提供程序中的类包含在System.Data.SqlClient名称空间中。1/31/20239ADO.NET概述(3)驱动程序提供程序SQLOLEDB用于SQLServer的MicrosoftOLEDB提供程序Microsoft.Jet.OLEDB.4.0用于MicrosoftJet的OLEDB提供程序MSDAORA用于Oracle的MicrosoftOLEDB提供程序OLEDB.NETFramework数据提供程序能被应用于任何一个和.NET框架相兼容的OLEDB数据库,比如Access、SQLServer、dBase和Oracle等数据库。由于它不是为专门的数据库设计的,所以运行的效率不如前者。不过,正因为它的通用性,使得在不同类型的数据库之间相互转变时,可不用改写应用程序的代码就能更换数据库。该数据提供程序中的类包含在System.Data.OleDb

名称空间中。对于不同的数据库,OLEDB.NETFramework数据提供程序相应的驱动程序如表所示。1/31/202310ADO.NET概述(4)对象说明DataSet数据在内存中的缓存DataTable内存中数据的一个表DataRowDataTable中的行DataColumnDataTable中的列2.DataSet对象

DataSet对象的功能是使从数据源中检索到的数据在内存中缓存,它提供一个内存驻留表示形式,包括一些数据表在内的数据以及表之间的关系。

DataSet

是ADO.NET的断开式数据库操作的核心组件,无论数据源是什么,它都会提供一致的关系编程模型。

SQLServer.NETFramework数据提供程序和OLEDB.NETFramework数据提供程序使用的对象名称不同,前者的使用对象分别为:SqlConnection、SqlCommand、SqlDataReader、SqlDataAdapter;后者的使用对象则为:OleDbConnection、OleDbCommand、OleDbDataReader、OleDbDataAdaPter。1/31/202311ADO.NET概述(5)DataSet

是ADO.NET中最核心的成员之一,也是各种基于.NET平台开发数据库应用程序最常接触的对象。DataSet

的主要特征是独立于各种数据源。无论什么类型数据源,它都会提供一致的关系编程模型。既可以以离线方式,也可以以实时连接来操作数据库中的数据。DataSet对象是一个可以用XML形式表示的数据视图,是一种数据关系视图。3.DataAdapter对象DataAdapter对象可以建立并初始化数据表(即DataTable),对数据源执行SQL指令,为DataSet对象提供存取数据,可视为DataSet对象的操作核心,是DataSet对象与数据操作对象之间的沟通媒介。DataAdapter对象可以隐藏Connection对象与Command对象沟通的数据。可允许使用DataSet对象存取数据源。1/31/202312ADO.NET概述(6)其主要的工作流程是:

由Connection对象建立与数据源联机,DataAdapter对象经由Command对象操作SQL指令以存取数据,存取的数据通过Connection对象返回给DataAdapter对象,DataAdapter对象将数据放入其所产生的DataTable对象,再将DataAdapter对象中的DataTable对象加入到DataSet对象中的DataTables对象中。声明格式:Dim变量名称As

sqlDataAdapter变量名称=New

sqlDataAdapter(“SQL字符串”,Connection对象名称)程序中通常利用DataAdapter对象中的Fill方法打开数据库,并利用其所附属的Command对象操作SQL指令,将结果保存到DataSet对象。其格式为:DataAdapter对象名称.Fill(DataSet对象名称,DataTable对象名称)1/31/202313数据访问模式(1)随着应用程序开发的发展演变,数据处理越来越多地使用多层结构,断开方式的处理模式可以为应用程序提供更好的性能和伸缩性。ADO.NET访问数据库的对象模型如图所示。ASP.NET应用程序DataSet对象SqlDataReader对象SqlDatAdapter对象SqlCommand对象SqlConnction对象数据库1/31/202314数据访问模式(2)1.断开式数据访问模式断开式数据访问模式指的是客户不直接对数据库操作。在.NET平台上,使用各种开发语言开发的数据库应用程序,一般并不直接对数据库操作(直接在程序中调用存储过程等除外),而是先完成数据库连接和通过数据适配器填充DataSet对象,然后客户端再通过读取DataSet对象来获取所需要的数据。在更新数据库中的数据时,也需要首先更新DataSet对象,然后再通过数据适配器来更新数据库中对应的数据。使用断开式数据访问模式的基本过程如下:⑴使用连接对象Connection连接并打开数据库;⑵使用数据适配器DataAdapter填充数据集DataSet;⑶关闭连接,对DataSet进行操作;⑷操作完成后打开连接;⑸使用数据适配器DataAdapter更新数据库。断开式数据访问模式特别适用于远程数据处理、本地缓存数据及对执行大批量数据的处理,不需要时时与数据源保持连接,从而将连接资源释放给其他客户端使用。1/31/202315数据访问模式(3)2.连接式数据访问模式连接式数据访问模式是指客户在操作过程中,与数据库的连接是打开的。如果不需要DataSet所提供的功能,则打开连接后可以直接使用命令对象Command进行数据库相关操作,使用DataReader对象以仅向前只读方式返回数据并显示,从而提高应用程序的性能。在实际应用中,选择数据访问模式的基本原则是首先满足需求,而后考虑性能优化。1/31/2023169.3数据库的连接主要内容数据库的连接ASP.NET连接数据库的环境设置与测试

1/31/202317数据库的连接(1)SqlConnection对象主要负责与数据源的连接,建立程序与数据源之间的联系,这是存取数据库的第一步,然后再利用方法Open()打开数据库,最后利用方法Close()关闭数据库。下面是ASP.NET下给予C#语言连接SQLServer2005数据库的代码:<%@ImportNamespace="System.Data"%><%@ImportNamespace="System.Data.SqlClient"%>/*导入命名空间*/SqlConnectionconMyData/*定义数据库连接对象*/……StringstrInsert="select*from数据表"/*查询语句*/StringStr1/*数据库连接字符串*/

Str1=@"DataSoure=服务器名;InitialCatalog=数据库名;UserID=用户名;Password=密码;"conMyData=newSqlConnection(Str1)/*创建数据库连接对象*/conMyData.Open()/*打开数据库连接*/……/*其它操作*/conMyData.close()/*关闭数据库连接*/1/31/202318数据库的连接(2)先导入System.Data、System.Data.SqlClient两个名称空间,操作SQLServer数据库所需的类大多在这两个名称空间内。其中最重要的是数据库连接字符串Str1的构造,它指定了要使用的数据库服务器、数据提供者以及登陆数据库的用户信息。各参数具体意义及设置如下:⑴DataSource参数这个参数设置的是系统的后台数据库服务器,使用方式为:“DataSource=服务器名”,其中服务器名就是数据库服务器的实例名称。该参数在设置的时候还可以有其它的别名,可以是“Server”,“Address”,“Addr”。如果使用的是本地数据库且定义了实例名,则可以写为“DataSource=local)\实例名”;如果是远程服务器,则将“(local)”替换为远程服务器的名称或IP地址,SQLServer默认的连接端口为1433端口,默认情况下不需要设置端口号,如果端口不是默认的则需要在服务器名称后面加冒号再连上端口号(:端口号)。例如,使用的数据提供者是7服务器上面的名为MySource的SQLServer服务器实例,并且连接端口为1455,参数设置如下:”DataSource=7\MySource:1455”1/31/202319数据库的连接(3)⑵UserID与Password参数UserID为连接数据库验证用户名,它还有一个别名“UID”;Password为连接数据库验证密码,它的别名为“PWD”。设置方式别为“UserID=用户名”,“Password=密码”。这里要注意,SQLServer必须预先已经设置了需要用户名和密码来登录,否则不能用这样的方式来登录。如果SQLServer设置为Windows登录,那么在这里就不需要使用“UserID”和“Password”这样的方式来登录,而需要使用“Trusted_Connection=SSPI”来进行登录。⑶InitialCatalog参数用于指定使用的数据库名称。在连接字符串中所用的登陆信息要对该参数设置的数据库下面相应的数据表具有操作权限。该参数还有一个别名为“Database”,所以可设置为“InitialCatalog=数据库名”或着“Database=数据库名”。在参数构造的字符串中的,各参数之间用分号隔开。后面例子中假设服务器的名字为:HYIT\SQLEXPRESS,数据库的名字为:教务管理,用户名为:aspnetname,密码为:123456。1/31/202320ASP.NET连接数据库的环境设置与测试(1)1.创建数据库及用户信息⑴打开MicrosoftSQLServerManager管理器。⑵建立教务管理数据库和第数据表S,⑶下面创建登录用户。单击安全性前面的“+”号,选择“登录”,单击右键,在弹出的快捷菜单中单击“新建登录”命令,弹出“登录名”对话框,如下图所示。1/31/202321ASP.NET连接数据库的环境设置与测试(2)学号SNO姓名SNAME性别SEX年龄AGE所在系SDEPT200915121200915122200915123200515125李小勇刘晨王洪敏张力MFFM20191819CSCSMAIS1.创建数据库及用户信息⑴打开MicrosoftSQLServerManager管理器。⑵建立教务管理数据库和数据表S:

⑶下面创建登录用户。单击安全性前面的“+”号,选择“登录”,单击右键,在弹出的快捷菜单中单击“新建登录”命令,弹出“登录名”对话框,如下图所示。1/31/202322ASP.NET连接数据库的环境设置与测试(3)登录名为“aspnetname”密码为“123456”,取消“用户在下次登录时必须更改密码”复选框1/31/202323ASP.NET连接数据库的环境设置与测试(4)指定可以访问的数据库是“教务管理”选定权限“db_owner”单击“用户映射”项,进行用户权限设置1/31/202324ASP.NET连接数据库的环境设置与测试(5)⑷为了与应用程序相连接,也可以设置SQLServer2005的登录模式,这是非常重要的一步,用户要注意。⑸选择SQL服务器,单击右键,在弹出的菜单中选择“属性”命令,就会出现服务器属性设置对话框,在该对话框中单击“安全性”项,如下图所示。1/31/202325ASP.NET连接数据库的环境设置与测试(6)一定要把服务器身份验证设为“SQLServer和Windows身份验证模式”

1/31/202326ASP.NET连接数据库的环境设置与测试(7)⑹设置好后,还要重新启动服务:选择SQL服务器,单击右键,在弹出的快捷菜单中选择“重新启动”命令,这时会弹出提示对话框,然后单击“是”按钮,就会弹出“服务控制”对话框。当服务控制运行完后,就设置成功了。2.ASP.NET代码编写在Windows记事本软件环境中输入如下代码:<%@ImportNamespace=”System.Data.SqlClient”%><scriptlanguage=”c#”runat=”server”>voidsql1_onClick(Objectsource,EventArgse){stringstr1=@"DataSource=HYIT\SQLEXPRESS;InitialCatalog=教务管理;UserID=aspnetname;Password=123456";1/31/202327ASP.NET连接数据库的环境设置与测试(8)SqlConnectionmycon=newSqlConnection(str1);Mycon.Open();Show1.Text=”连接成功!”;Mycon.Close();show2.Text=”关闭连接!”;}</script><html><head><metahttp-equiv=”Content-Type”content=”text/html;charset=gb2312”><title>Connection对象连接数据库</title></head><body><h3>Connection对象连接数据库</h3><formrunat=”server”>1/31/202328ASP.NET连接数据库的环境设置与测试(9)<asp:buttonid="sql1"text="测试连接数据库"runat="server"onclick="sql1_onClick"/><br/><asp:Labelid=”showl”runat=”server”/><br/><asp:Labelid=”show2”runat=”server”/></form></body></html>按键盘上的【Ctrl+S】组合键,保存文件到“e:\目录集\sqlserver2005\代码\13”文件夹中,文件名为“aspnetsql1.aspx”,保存格式选择“所有文件”,编码为“ANSI”。1/31/202329ASP.NET连接数据库的环境设置与测试(10)3.ASP.NET环境配置与测试⑴先来创建虚拟目录。单击“开始/设置/控制面板”命令,打开控制面板,双击“管理工具”按钮,打开管理工具窗口,在管理工具窗口中双击“Internet信息服务(IIS)管理器”,打开“Internet信息服务(IIS)管理器”窗口,如下图所示。1/31/202330ASP.NET连接数据库的环境设置与测试(11)在“Intemet信息服务(IIS)管理器”窗口中,选择“默认Web站点”,单击右健,在弹出的快捷菜单中选择“新建/虚拟目录”命令。弹出“虚拟目录创建向导”对话框,如下图所示。

1/31/202331ASP.NET连接数据库的环境设置与测试(12)单击“下一步”按钮弹出创建虚拟目录别名对话框,在这里命名为sqlserver2005,1/31/202332ASP.NET连接数据库的环境设置与测试(13)

⑵再单击“下一步”按钮,弹出选择网站内容目录对话框,单击“浏览”按钮,会弹出如图所示选择文件对话框。选择“D:\DB\Aspdotnet”单击“确定”按钮,弹出虚拟目录访问权限设置对话框,如图下所示。

1/31/202333ASP.NET连接数据库的环境设置与测试(14)选择了所有的权限单击“下一步”按钮,弹出设置完成对话框,单击“完成”按钮即可。这样就创建了虚拟目录。1/31/202334ASP.NET连接数据库的环境设置与测试(15)⑶单击“13”文件夹,然后选择“aspnetsql1.aspx”文件,单击右键,在弹出的快捷菜单中选择“浏览”命令,这时出现浏览效果如图所示。单击页面中的“测试连接数据库”按钮,就会显示相应的提示信息。

1/31/2023359.4显示数据库中的数据

主要内容显示和修改数据的常用方法显示数据库中的数据

1/31/202336显示和修改数据的常用方法(1)1.ExecuteReader方法该方法是查询显示数据库中数据最常用的一种方法,即利用该方法可以读出数据源中的数据,生成一个DataReader对象,然后利用SqlDataReader对象进行输出显示。该方法执行时需要带两个参数,分别是CommandText和SqlConnection。代码如下:stringstr1=@"DataSource=HYIT\SQLEXPRESS;InitialCatalog=教务管理;UserID=aspnetname;Password=123456";SqlConnectionmycon=newSqlConnection(strl);Mycon.Open();Stringsqlstr1=”select*fromS”;SqlCommandmycom=newSqlCommand(sqlstrl,mycon);SqlDataReadermyreader=mycomm.ExecuteReader();SqlCommand的最常见用法是执行返回结果的查询。SqlCommand类设计用于帮助开发人员构造自己的查询。调用SqlCommand对象的ExecuteReader方法会返回SqlDataReader对象,可以用它来获取由这些查询返回的行。有三种方式创建SqlCommand对象:①使用new关键字直接创建对象的一个新实例,然后设置适当属性;②使用一个可用的构造函数来指定查询字符串以及SqlConnection对象;③调用SqlConnection类的CreaterCommand方法。

SqlDataReader类可以利用它们(以只读方式)查看对象所公开的数据。并且公开了允许在查询结果中进行遍历的属性和方法。要创建一个SqlDataReader,只需要调用SqlCommand对象的ExecuteReader方法。

1/31/202337显示和修改数据的常用方法(2)2.ExecuteNonQuery方法由于对数据库中的数据进行插入、更新、删除或利用存储过程进行操作时,是不返回行数的。而ExecuteNonQuery方法返回一个整数,表示已执行的语句所影响的数据行数。下面以向数据库中插入一条记录为例进行说明。stringstr1=@"DataSource=HYIT\SQLEXPRESS;InitialCatalog=教务管理;UserID=aspnetname;Password=123456";SqlConnectionmycon=newSqlConnection(strl);Mycon.Open();Stringinsertstrl="InsertintoS(Sno,Sname,Sex,Age,Sdept)values(’200913254’,’吕占英’,’F’,21,’CS’);SqlCommandmycom=newSqlCommand(insertstrl,mycon);Intnum=mycom.ExecuteNonQuery();1/31/202338显示和修改数据的常用方法(3)3.ExecuteScalar方法在查询数据库中的数据时,常常会查询最大值、最小值、平均值、总和等,即查询函数运算值,这时就要使用ExecuteScalar方法,返回查询所影响的结果集中在第一行的第一列。因此该方法常用于函数查询。下面来看一下代码:stringstr1=@"DataSource=HYIT\SQLEXPRESS;InitialCatalog=教务管理;UserID=aspnetname;Password=123456";SqlConnectionmycon=newSqlConnection(strl);Mycon.Open();Stringscalarstrl=”selectmin(AGE)fromS;SqlCommandmycom=newSqlCommand(scalarstrl,mycon);Intnum=(int)mycom.ExecuteScalar();1/31/202339显示和修改数据的常用方法(4)4.ExecuteXmlReader方法该方法主要实现数据库与XML文档的交流,使用该方法需要传递一个ForXML子句的T-SQL语句。该方法执行时要带两个参数:CommandText和SqlConnection。可以利用该方法生成一个XmlReader对象。具体代码如下:stringstr1=@"DataSource=HYIT\SQLEXPRESS;InitialCatalog=教务管理;UserID=aspnetname;Password=123456";SqlConnectionmycon=newSqlConnection(strl);Mycon.Open();Stringxmltr1=”select*fromSforXMLAUTO,XMLData”;SqlCommandmycom=newSqlCommand(scalarstr1,mycon);XmlReadermyxml=mycom.ExecuteXmlReader();1/31/202340显示数据库中的数据(1)显示SQLServer2005数据库中的数据的程序分为四步完成:①导入命名空间,是因为我们所使用的数据库对象都在该命名空间中,具体代码如下:<%@ImportNamespace=”System.Data.SqlClient”%>②利用SqlConnection连接数据源,然后利用Sqlcommand对象查询数据源,具体代码如下:stringstr1=@”DataSource=HYIT\SQLEXPRESS;InitialCatalog=教务管理;UserID=aspnetname;Password=123456”;SqlConnectionmycon=newSqlConnection(str1);SqlCommandmycomm=newSqlCommand(”select*fromS”,mycon);1/31/202341显示数据库中的数据(2)③利用Sqlcommand对象的ExecuteReader方法产生一个SqlDataReader对象,然后再利用该对象的Read()方法显示数据库中的数据,具体代码如下:SqlDataReadermyreader=mycomm.ExecuteReader();While(myreader.Read()){Response.Write(myreader.GetString(0)+””);Response.Write(myreader.GetString(1)+””);Response.Write(myreader.GetString(2)+””);……}调用Read()方法之后,SqlDataReader对象才会移动到结果集的第一行,同时也返回一个Bool值,表明下一行是否可用,返回True则可用,返回False则到达结果集末尾。④关闭数据源。要先关闭SqlDataReader对象,才能关闭SqlConnection对象,是因为SqlDataReader对象以独占方式使用SqlConnection对象,代码如下:myreader.Close();mycon.Close();1/31/2023429.5格式化显示数据库中的数据

主要内容利用DataSet对象显示数据表格显示数据库中的数据分页显示数据库中的数据

1/31/202343利用DataSet对象显示数据(1)DataSet对象是ASP.NET中非常重要的一个对象,该对象是内存中数据的表示形式,无论数据源是什么,它都可以提供一致的关系编程模型,可以应用于多种不同的数据源。1.DataSet对象与DataReader对象的比较DataSet对象:必须结合DataAdapter对象使用,它是由许多数据表、记录和字段组成的一个对象。主要用于在内存中存放数据,它可以一次读取整张数据表的内容,也可以对网页中显示的数据进行编辑,并且还可以在数据中任意移动。DataReader对象:必须结合Command对象使用,一次读取一条数据,只读且数据只能单向向前移动,一般用于单独显示数据。1/31/202344利用DataSet对象显示数据(2)2.常用对象⑴DataTable对象DataTable对象是内存中的一个数据表,主要由DataRow对象和DataColumn对象组成。它是组成DataSet对象的主要组件,因为DataSet对象可以接收由DataAdapter对象执行SQL指令后所取得的数据,这些数据是DataTable对象的格式,所以DataSet对象也需要许多DataTable对象来储存数据,并可利用DataRow集合对象中的Add方法加入新的数据。⑵DataRow对象它对应于数据库表或视图中的行。定义字段后,可以通过DataRow对象添加记录,所组成的集合即为DataTable对象中的Rows属性。使用DataTable对象产生DataRow时,会依照DataColumn集合对象中的字段产生DataRow对象。1/31/202345利用DataSet对象显示数据(3)⑶DataColumn对象它对应于数据库表或视图中的列,即数据表或视图中的字段。所组成的集合即为DataTable对象中的Column属性,是组成数据表的最基本单位。⑷DataRelation对象它对应于数据库表之间的关系。以便浏览相关表中的记录。访问相关记录时,DataRelation对象被传递给GetChildRows或GetParentRows方法。DataRelation对象确定所要查询的相关表,以便返回与GetChildRows或GetParentRows方法调用相关联的相关数据。⑸DataView对象它对应于数据库中的视图。DataView对象是DataTable对象中的DefaultView属性。主要功能是返回数据表的默认视图,此默认视图就是一个DataView对象,可以用来设置DataTable对象中的数据显示方式,也可以将数据做排序与筛选,所以DataView对象与DataTable对象是相关联的。1/31/202346利用DataSet对象显示数据(4)⑹DataGrid控件它是表格控件,可以利用它显示数据库表格中的信息。此空间是用表格设置数据库的显示格式,有多种版面、格式、事件等供编程人员选择与设计,使得数据库的数据显示更有特色和美感。其格式如下:<asp:DataGridid=”控件标识”runat=”server”datasource=连接的数据源CellPadding=”像素值”/*单元格内文字与单元格边框的距离*/spacePadding=”像素值”/*单元格与单元格之间的距离*/font-name=”字体名称”font-Size=”字体大小”……>1/31/202347表格显示数据库中的数据用表格显示数据库中数据的内容主要为:①首先导入两个命名空间,因为我们所使用的对象在相应的命名空间中,代码如下<%@ImportNamespace=”System.Data”%><%@ImportNamespace=”System.Data.SqlClient”%>②利用SqlDataAdapter对象的Fill()方法把数据源中的数据传到DataSet对象,具体代码为:SqlDataAdaptermyadapterl=newSqlDataAdapter(”select*fromS”,myconn)DataSetmydata1=newDataSet();Myadapter1.Fill(mydata1,”S”);③把DataSet赋给DataGrid控件的DataSource属性,并调用DataBind()方法完成数据绑定。具体代码如下:Mygrid1.DataSource=mydata1;Mygrid1.DataBind();1/31/202348分页显示数据库中的数据(1)当DataGrid数据源中有很多记录时,就要采用分页显示技术,以方便阅读。与分页显示相关的几个属性如下。AllowPaging个属性:该属性用来设定是否使用分页,如果为true,则使用,否则不使用。PageSize属性:该属性用来指定每页显示的记录数。CurrentPagelndex属性:该属性指定当前要显示的页的索引。OnPageIndexChanged属性:该属性是设置页码改变事件。NewPageIndex属性:该属性确定用户选择的页面的索引。1/31/202349分页显示数据库中的数据(2)步骤为:①首先需要设置DataGrid控件属性,具体如下:<asp:datagridid=”mygridl”runat=”server”AllowPaging=”true”OnPageIndexChanged=”changedpage”PageSize=”4”></asp:Datagrid>②再设置分页类型及对齐方式,具体代码如下:<pagerstyleHorizontalAlign=”right”Mode=”NumericPages”></pagerstyle>③编写页面改变事件代码,具体如下:voidchangedpage(Objectsource,DataGridPageChangedEventArgse)/*分页功能*/{Mygrid1.CurrentPageIndex=e.NewPageIndex;/*设置当前的页索引*/Mygrid1.DataBind();/*DataGrid重新绑定数据源*/}1/31/2023509.6数据插入

主要内容数据插入常用对象和控件向数据库中插入记录

1/31/202351常用对象和控件(1)1.DataAdapter对象的常用属性SqlDataAdapter提供四个常用的属性用来获得和修改数据源中的数据,具体如下:UpdateCommand属性:该属性获得或设置一个SQL语句或存储过程,用于更新数据源中的数据。InsertCommand属性:该属性获得或设置一个SQL语句或存储过程,用于在数据源中插入新的数据。DeleteCommand属性:该属性获得或设置一个SQL语句或存储过程,用于删除数据源中的数据。SelectCommand属性:该属性获得或设置一个SQL语句或存储过程,用于获得数据源中的数据。每一个属性会自动创建一个Command对象,如:SqlDataAdaptermyadapter=newSqlDataAdapter

/*连接数据源的SqlConnection对象*/这时就会自动创建一个Command对象。SqlConnection对象则产生了Command对象的Connection属性。1/31/202352常用对象和控件(2)2.SqlCommandBuilder对象如果要实现对数据源中的数据的修改,还要利用SqlCommand-Builder对象,该对象具体代码如下:SqlDataAdaptermyadapter=newSqlDataAdapter;/*连接数据源的SqlConnection对象*/SqlCommandBuildermybuilder1=newSqlCommandBuilder(myadapter);要获得自动生成的SQL语句,需要使用下面3种方法。⑴GetDeleteCommand方法:该方法可以自动生成对数据库执行的删除操作对象。⑵GetUpdateCommand方法:该方法可以自动生成对数据库执行的更新操作对象。⑶GetInsertCommand方法:该方法可以自动生成对数据库执行的插入操作对象。1/31/202353常用对象和控件(3)3.DataList控件显示数据库中数据常用的控件有DataGrid、DataList和Repeater,下面介绍用DataList控件来显示后台数据库中的信息。DataList控件的语法格式如下:<asp:DataListid=”控件标识”runat=”server”BorderColor=”颜色”><HeaderTemplate></HeaderTemplate>

/*指定列表开始处的控件或文本*/<ItemTemplate></ItemTemplate>/*指定DataList中每一项的布局*/<AlternatingItemTemplate></AlternatingItemTemplate>

/*指定DataList中每间隔一行的布局*/<SeparatorTemplate></SeparatorTemplate>

/*指定在每项之间呈现的元素*/<SelectedItemTemplate></SelectedItemTemplate>

/*指定DataList中被选中的项的布局*/<EditItemTemplate></EditItemTemplate>/*指定项目被编辑时的布局*/<FooterTemplate></FooterTemplate>/*指定列表结束处的控件或文本*/</asp:DataList>1/31/202354向数据库中插入记录(1)向数据库中插入记录的主要步骤为:①利用代码插入一条记录,首先要新建数据库表的一个新行,然后为每个字段赋值,再添加到表中,具体代码如下:DataRowmyrowl=mydata1.Tables[”S”].NewRow();

/*新建数据库表的一个新行*/myrow1[”SNO”]=”200913121”;/*为各个字段赋值*/myrow1[”SNAME”]=”王晓杰”;myrow1[”SEX”]=”F”;myrow1[”AGE”]=20;myrow1[”SDEPT”]=”IS”;mydata1.Tables[”S”].Rows.Add(myrow1);/*添加该行*/1/31/202355向数据库中插入记录(2)②利用CommandBuilder对象把内存中的记录添加到数据库中,更新数据库中的记录,具体代码如下:SqlCommandBuildermybuilder1=newSqlCommandBuilder(myadapter1);myadapterl.InsertCommand=mybuilder1.GetInsertCommand();myadapter1.Update(mydata1,”S”);mydata1.Clear();③下面再进行数据绑定即可。④DataList控件的应用要注意各个属性的设置,具体格式设置如下:<HeaderStyleBackColor=”#FF9900”/><alternatingItemStyleBackColor=”#9999FF”/>1/31/202356向数据库中插入记录(3)⑤数据库中记录显示代码如下:<ItemTemplate><%#DataBinder.Eval(Container.DataItem,”SNO”%><%#DataBinder.Eval(Container.DataItem,”SNAME”%><%#DataBinder.Eval(Container.DataItem,”SEX”)%><%#DataBinder.Eval(Container.DataItem,”AGE”)%><%#DataBinder.Eval(Container.DataItem,”SDEPT”)%></ItemTemplate>⑥每项之间显示的横线代码如下:<separatorTemplate><hr></separatorTemplate>1/31/2023579.7数据修改和删除

主要内容Repeater控件修改数据库中的数据信息删除记录

1/31/202358Repeater控件(1)Repeater是一个可重复操作的控件,也就是说,它通过使用模板显示一个数据源的内容。Repeater包含如标题和页脚这样的数据,它可以遍历所有的数据选项并应用到模板中。与DataGrid和DataList控件不同,Repeater控件并不是由WebControl类派生而来。所以,它不包括一些通用的格式属性,比如控制字体,颜色,等等。但是,HTML(或者一个样式表)或者ASP.NET类可以处理这些属性。Repeater控件与DataGrid(以及Dat

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论