ASP.NET数据库应用指南

对于一个熟练的ASP开发者来说,ASP的数据库应用不但简单,而且功能还很强大。很多WEB开发者就是因为这一点而选择ASP的,至今为止,他们一直认为ASP数据库功能还不错,完全可以满足开发要求。但是,对于一个刚刚学习ASP或者对HTML不是很熟悉的用户来说,ASP的数据库应用实在是太麻烦了:写程序时ASP代码穿插于HTML代码之间,修改和检测极不方便;写程序一点没有编写传统程序的感觉,感觉就像是写HTML一样;数据分页不方便,而且不明白为什么要那么繁琐,简直每一页直接数数据差不多。这些麻烦,每一个ASP开发者都曾经经历,那么,现在,ASP.NET的学习者,就再也不会面对这些了,他们可以很快捷的开发数据库应用,而且程序性能比以前高的多。现在,我们就具体来看看ASP.NET的数据库应用。 
 
一:名字空间NameSpace 
要使用ASP.NET的数据库功能,不可能离开名字空间NameSpace的使用。什么是名字空间,说理论可以说半天,我们没必要了解,简单一点,名字控件就像Delphi中的控件,你必须将它们放入你的Form才能使用他们,同样,如果你要使用ASP.NET的数据库功能,你就必须先引用相应的名字空间。ASP.NET中关于数据库的名字空间有这些: 

上面说到了ADO+,它是ADO的下一代,就像ASP.NET是ASP的下一代,相对于ADO,ADO+有以下特点: 
一) 支持XML; 
二) 更好的性能; 
三) 方便的编程接口; 
 
名字空间的具体使用如下: 
<%@ Import NameSpace=”名字空间”%> 
 
举例: 
<%@ Import NameSpace=”System.Data”%> 
 
应该注意一点,以上代码必须在页面顶端。 
 
二:基本概念 
在使用ASP.NET以前,还必须了解一些基本概念: 
ADOConnection:相当于ASP中的数据库Connection; 
ADOCommand:相当于ASP中的数据库Command; 
DataView:相当于ASP的ADO记录集RecordSet; 
DataSet:多个数据表的集合; 
 
以上概念实在是比较抽象,如果现在不理解,不要紧,现照着使用,以后慢慢就会理解。 
 
三:数据库基本使用样板 
看了一大堆概念,现在先来看一个实例(为了方便,直接使用SQL Server自带的NorthWind数据库),本文章以后举例,均以此样板为基础,请大家一定掌握: 
 
<%@ Import NameSpace="System.Data"%> 
<%@ Import NameSpace="System.Data.SQL"%> 
 
<Script Language="VB" RunAt="Server"> 
Function createdatasource() 
Dim conn AS SQLConnection 
Dim connstr As String 
Dim strsql AS String 
Dim sqlCmd AS SQLDataSetCommand 
Dim ds AS New DataSet 
'连接数据库 
connstr= 
"Server=NHGA-D36KQ26TWB;DataBase=NorthWind;Pwd=;Uid=sa" 
conn= New SQLConnection(connstr) 
'SQL语句 
strsql="Select * from Products " 
'建立DataSet 
sqlCmd=New SQLDataSetCommand(strsql,conn) 
'将表Products加入DataSet 
sqlCmd.FillDataset(ds,"Products") 
 
return ds.Tables("Products").DefaultView 
end Function 
 
'绑定数据函数 
sub BindGrid() 
DataGrid1.DataSource=CreateDataSource() 
DataGrid1.DataBind() 
End Sub 
 
'页面登录  
Sub Page_Load(Source AS Object,E AS EventArgs) 
CreatedataSource() 
BindGrid() 
End Sub 
</Script> 
 
<html> 
 
<head> 
<meta http-equiv="Content-Language" content="zh-cn"> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
<meta name="GENERATOR" content="Microsoft FrontPage 4.0"> 
<meta name="ProgId" content="FrontPage.Editor.Document"> 
<title>ASP.NET数据库使用</title> 
</head> 
 
<body> 
<Form RunAt="Server"> 
<ASP:DataGrid id="DataGrid1" RunAt="Server" /> 
</Form> 
</body> 
 
</html> 
 
执行以上程序,效果如下: 

(程序执行效果)
 
 
以上是一个最简单的ASP.NET数据库应用,唯一功能就是列出NorthWind数据库Products表的所有记录。可以和ASP比较一下,发现这个程序是如此的简单。为了更好的了解数据库应用的基本框架,我们来看看这个数据库应用具体是怎样实现的。 
 
页面登录时,调用CreateDataSource和BindGrid函数,CreateDataSource函数连接数据库并且建立DataView,BindGrid函数将数据绑定到DataGrid。有关这两个函数的具体语句,代码中均有说明。 
 
四:基本数据库应用 
有了以上模板,ASP.NET数据库应用的基本框架已经有了,现在,我们需要在这个框架上作一些修改,是其更加符合我们的实际使用要求。 
 
一)界面设置 
如果我们呈现给访问者的数据全部使用以上模板的界面,也未尝不可。但是 
谁不希望自己的页面美观一点呢?还是以上代码,只是修改DataGrid部分,数据库部分不变。将程序中: 
<ASP:DataGrid id="DataGrid1" RunAt="Server" /> 
修改为: 
<ASP:DataGrid id="DataGrid1" RunAt="Server" 
BorderColor="black" 
BorderWidth="1" 
CellPadding="3" 
 
BackImageUrl="" 
BackColor="#FFCCCC" 
ForeColor="Black" 
 
HeaderStyle-BackColor="#CCCCFF" 
HeaderStyle-ForeColor="Blue" 
 
AlternatingItemStyle-BackColor="#F3f3f3" 

</ASP:DataGrid> 
你将得到以下效果: 

(程序执行效果)
 
在这个界面里面,我们设置了字体,每行背景,DataGrid背景等,我们现在一一分析: 
BorderColor="black" 
BorderWidth="1" 
CellPadding="3" 
以上语句设置DataGrid的边框为黑色;边框粗细为1;单元格跨距为3; 
BackImageUrl="apictue.gif" 
BackColor="#FFCCCC" 
ForeColor="Black" 
以上语句设置DataGrid的背景图象为apicture.gif;背景颜色为#FFFFCC;字体颜色为黑色; 
HeaderStyle-BackColor="#CCCCFF" 
HeaderStyle-ForeColor="Blue" 
以上语句设置DataGrid的Header属性,背景颜色为#CCCCFF;字体颜色为:蓝色; 
AlternatingItemStyle-BackColor="#F3f3f3" 
以上语句设置DataGrid每一行交替背景颜色为F3F3F3;这一语句在ASP里面实现很繁琐,在这里,一句就解决。 
 
二)数据分页 
ASP里面的数据分页实在繁琐,不得不化很多精力去写代码。一些程序员就是因为这一点,如果数据不是太多干脆不分页,勉强应付。现在我们再也不要为数据分页烦恼了,将一下代码加入DataGrid设置: 
AllowPaging="True" 
PageSize="5" 
PagerStyle-HorizontalAlign="Right" 
PagerStyle-NextpageText="下一页 >>" 
PagerStyle-PrevPageText="<< 上一页" 
页面效果如下: 

(程序执行效果)
 
这就是一个标准的数据分页,是不是比ASP简单的多?我们来仔细看一下代码是怎样的: 
AllowPaging="True" 
以上代码允许数据进行分页,默认是False。所以,如果你要数据分页,一定要加上这一句; 
PageSize="5" 
PageSize和ASP中的一样,表示每页有多少记录; 
PagerStyle-HorizontalAlign="Right" 
以上语句表示分页符在页面的位置的右边。 
PagerStyle-NextpageText="下一页 >>" 
PagerStyle-PrevPageText="<< 上一页" 
以上语句表示用“下一页”“上一页”作为分页符号,如果不希望这样,想直接用数字表示,去掉这两句就可以了。 
注意: 
与分页有关的还有PageCount属性,可以得到分页的总数; 
 
三)数据排序 
数据排序不是在SQL语句里面就可以设定吗,为什么还要专门来一个数据排序?SQL语句的数据排序只能服务器端设定,如果用户希望按照自己的喜好排序怎么办?ASP里面是没有办法解决的,现在,我们看看ASP.NET怎样解决这个问题。 
在DataGrid设置里面加入一下语句: 
AllowSorting="true" 
OnSortCommand="Sort_Grid" 
第一句表示DataGrid采用要求排序;第二局表示点击排序以后的事件;我们来看看这个事件: 
Sub Sort_Grid(Sender As Object,E As DataGridSortCommandEventArgs) 
SortField=E.SortField  
DataGrid1.DataSource=CreateDataSource() 
DataGrid1.DataBind() 
End Sub 
点击排序以后,首先,设置排序字段为点击的字段,如何重新显示数据。效果如下: 

(程序执行效果)
 
如上图,每一个字段名均是一个LinkButton(连接),点击这个字段名,就可以按这个字段排序。需要注意的是,排序不是对当前页排序,而是对整个DataGrid排序。 
 
四) 数据编辑 
数据库操作出了数据浏览,最大部分其实就是对数据的处理(增加,修改,删除)。数据处理,ASP.NET和ASP没有太多的区别,我们看一个增加数据的例子就可以了解ASP.NET的数据编辑的实现了。 
Sub InsertRec()  
Dim conn AS SQLConnection 
Dim connstr As String 
Dim sqlinsertcmd AS SQLCommand 
Dim sqlinsert AS String 
 
connstr="Server=NHGA-D36KQ26TWB;DataBase=MyBase;Pwd=;Uid=sa" 
conn= New SQLConnection(connstr) 
 
sqlinsert="Insert Into MyTable(title,name,content) Values(@title,@name,@content)" 
sqlinsertcmd=New SQLCommand(sqlinsert,conn) 
 
sqlinsertcmd.parameters.Add(New SQLParameter("@title",SQLDataType.varchar,20)) 
sqlinsertcmd.parameters.Add(New SQLParameter("@name",SQLDataType.varchar,20)) 
sqlinsertcmd.parameters.Add(New SQLParameter("@content",SQLDataType.varchar,20)) 
 
sqlinsertcmd.parameters.item("@title").value="Test3" 
sqlinsertcmd.parameters.item("@name").value="Test3" 
sqlinsertcmd.parameters.item("@content").value="Test3" 
 
conn.open() 
sqlinsertcmd.execute() 
 
End Sub 
 
以上代码中,首先创建一个数据库连接,然后建立了一个插入语句,此插入语句使用了以@开头的参数,这一点可能与ASP稍有差别。使用参数之前,必须先创建参数,并要说明参数的数据类型。如何打开连接,执行插入语句就可以了。 
 
五:总结 
以上我们设计到了ASP.NET数据库操作中常用的部分,基本可以实现我们一般编程要求。但是,如果要全面了解ASP.NET的数据库功能,以上显然是不够的,这需要我们更加不断地学习其他ASP.NET的知识,融会贯通。 

时间: 2024-10-30 10:34:55

ASP.NET数据库应用指南的相关文章

ASP中Cookie使用指南(转)

cookie 甘冀平翻译的<ASP中Cookie使用指南> 实际上,在web开发中,cookie仅仅是一个文本文件,当用户访问站点时,它就被存储在用户使用的计算机上,其中,保存了一些信息,当用户日后再次访问这个站点时,web可以将这些信息提取出来. 尽管现在听起来cookie没有什么激动人心的,但实际上利用它,你能实现许多有意义的功能!比如说:你可以在站点上放置一个调查问答表,询问访问者最喜欢的颜色和字体,然后根据这些定制用户的web界面.并且,你还可以保存访问者的登录密码,这样,当访问者再次

Asp.Net MVC4入门指南(6):验证编辑方法和编辑视图

在本节中,您将开始修改为电影控制器所新加的操作方法和视图.然后,您将添加一个自定义的搜索页. 在浏览器地址栏里追加/Movies, 浏览到Movies页面.并进入编辑(Edit)页面. Edit(编辑)链接是由Views\Movies\Index.cshtml视图中的Html.ActionLink方法所生成的: @Html.ActionLink("Edit", "Edit", new { id=item.ID }) Html对象是一个Helper, 以属性的形式,

Asp.Net MVC4入门指南(1): 入门介绍

前言 本教程将为您讲解使用微软的Visual Studio Express 2012或Visual Web Developer 2010 Express Service Pack 1 来建立一个ASP.NET MVC4 Web应用程序所需要的基础知识.建议您使用Visual Studio 2012,你将不再需要安装任何组件,来完成此教程.如果您使用的是Visual Studio 2010,您必须安装下面的组件.您可以通过点击下面的链接,来安装所需的所有组件: Visual Studio Web

Asp.Net MVC4入门指南(9):查询详细信息和删除记录

在本教程中,您将查看自动生成的Details和Delete方法. 查询详细信息和删除记录 打开Movie控制器并查看Details方法. public ActionResult Details(int id = 0) { Movie movie = db.Movies.Find(id); if (movie == null) { return HttpNotFound(); } return View(movie); } Code First 使得您可以轻松的使用Find方法来搜索数据.一个重要

Asp.Net MVC4入门指南(5):从控制器访问数据模型

在本节中,您将创建一个新的MoviesController类,并在这个Controller类里编写代码来取得电影数据,并使用视图模板将数据展示在浏览器里. 在开始下一步前,先Build一下应用程序(生成应用程序)(确保应用程序编译没有问题)   用鼠标右键单击Controller文件夹,并创建一个新的 MoviesController控制器.当Build成功后,会出现下面的选项.设定以下选项: · 控制器名称: MoviesController.(这是默认值). · 模板: MVC Contro

Asp.Net MVC4入门指南(7):给电影表和模型添加新字段

在本节中,您将使用Entity Framework Code First来实现模型类上的操作.从而使得这些操作和变更,可以应用到数据库中. 默认情况下,就像您在之前的教程中所作的那样,使用 Entity Framework Code First自动创建一个数据库,Code First为数据库所添加的表,将帮助您跟踪数据库是否和从它生成的模型类是同步的.如果他们不是同步的,Entity Framework将抛出一个错误.这非常方便的在开发时就可以发现错误,否则您可能会在运行时才发现这个问题. (由

Asp.Net MVC4入门指南(8):给数据模型添加校验器

在本节中将会给Movie模型添加验证逻辑.并且确保这些验证规则在用户创建或编辑电影时被执行. 保持事情 DRY ASP.NET MVC 的核心设计信条之一是DRY: "不要重复自己(Don't Repeat Yourself)".ASP.NET MVC鼓励您指定功能或者行为,只做一次,然后将它应用到应用程序的各个地方.这可以减少您需要编写的代码量,并减少代码出错率,易于代码维护. 给ASP.NET MVC 和 Entity Framework Code First 提供验证支持是 DR

快速掌握ASP+Access数据库的18条安全法则

ASP+Access数据库的18条安全法则: 1.首先,我们需要过滤所有客户端提交的内容,其中包括?id=N一类,另外还有提交的html代码中的操作数据库的select及asp文件操作语法,大家可以把提交的字符转义,然后再存入数据库. 2.然后需要对访问Access数据库的页面进行授权,针对显示数据页面只能使用select语句,过滤其他的update,asp文件则分为许可访问数据库页面和限制访问页. 3.修改数库据连接文件名conn.asp为类似123ljuvo345l3kj34534v.asp

ASP操作数据库的类,让数据操作变得简单

对于ASP的使用者来说,在数据库操作上越简单,就有更多的时间去考虑逻辑上和应用上的代码,效率也会更高.今天俺在这里给大家提供一种数据库操作的思路,这些代码是俺在长期的ASP应用中不断完成和修正的,也已经用它完成了很多项目了,应该说直接拿去用是没有问题的.当然本人能力也有限,希望大家一起来讨论. 说明:此帖代码均是VBScript版本.另外最好你对手写ASP已经有一定的基础. 先简单介绍一下俺这个类的一些特点: 1.可同时操作多个不同类型的数据库.2.完全不用考虑数据类型的差别,再也不用想字符型字