经验分享:ASP.NET数据库应用分析

开发 后端
本文介绍了ASP.NET数据库的具体应用,由于ASP.NET数据库与ASP相比还是有很多不同的,所以在具体应用方面仍有很多地方需要特别注意。

ASP.NET数据库在使用中有很多的优势,这些已经赢得了程序员们广泛的青睐。现在,我们就具体来看看ASP.NET数据库的应用。

对于一个熟练的ASP开发者来说,ASP.NET数据库的应用不但简单,而且功能还很强大。很多Web开发者就是因为这一点而选择ASP的,至今为止,他们一直认为ASP.NET数据库功能还不错,完全可以满足开发要求。

一、名字空间NameSpace

要使用ASP.NET数据库的功能,不可能离开名字空间NameSpace的使用。什么是名字空间,简单一点,名字空间就像Delphi中的控件,你必须将它们放入你的Form才能使用它们,同样,如果你要使用ASP.NET数据库的功能,你就必须先引用相应的名字空间。ASP.NET数据库的名字空间有这些:

<%@ 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>  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.

以上是一个最简单的ASP.NET数据库应用,唯一功能就是列出NorthWind数据库Products表的所有记录。可以和ASP比较一下,发现这个程序是如此的简单。为了更好的了解数据库应用的基本框架,我们来看看这个数据库应用具体是怎样实现的。

页面登录时,调用CreateDataSource和BindGrid函数,CreateDataSource函数连接数据库并且建立DataView,BindGrid函数将数据绑定到DataGrid。有关这两个函数的具体语句,代码中均有说明。 #p#

二、基本数据库应用

有了以上模板,ASP.NET数据库应用的基本框架已经有了,现在,我们需要在这个框架上作一些修改,使其更加符合我们的实际使用要求。

1.界面设置

如果我们呈现给访问者的数据全部使用以上模板的界面,也未尝不可。但是,谁不希望自己的页面美观一点呢?还是以上代码,只是修改DataGrid部分,数据库部分不变。将程序中:

<ASP:DataGrid id="DataGrid1" RunAt="Server" />  
  • 1.

修改为:

<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>  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.

在这个界面里面,我们设置了字体,每行背景,DataGrid背景等,我们现在一一分析:

BorderColor="black"   
BorderWidth="1"   
CellPadding="3"  
  • 1.
  • 2.
  • 3.

以上语句设置DataGrid的边框为黑色;边框粗细为1;单元格跨距为3。

BackImageUrl="apictue.gif"   
BackColor="#FFCCCC"   
ForeColor="Black"  
  • 1.
  • 2.
  • 3.

以上语句设置DataGrid的背景图象为apicture.gif;背景颜色为#FFFFCC;字体颜色为黑色。

HeaderStyle-BackColor="#CCCCFF"   
HeaderStyle-ForeColor="Blue"  
  • 1.
  • 2.

以上语句设置DataGrid的Header属性,背景颜色为#CCCCFF;字体颜色为蓝色。

AlternatingItemStyle-BackColor="#F3f3f3"  
  • 1.

以上语句设置DataGrid每一行交替背景颜色为F3F3F3;这一语句在ASP里面实现很繁琐,在这里,一句就解决。

2.数据分页

ASP里面的数据分页实在繁琐,不得不花很多精力去写代码。一些程序员就是因为这一点,如果数据不是太多干脆不分页,勉强应付。现在我们再也不要为数据分页烦恼了,将一下代码加入DataGrid设置:

AllowPaging="True"   
PageSize="5"   
PagerStyle-HorizontalAlign="Right"   
PagerStyle-NextpageText="下一页 >>"   
PagerStyle-PrevPageText="<< 上一页"  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

这就是一个标准的数据分页,是不是比ASP简单得多?我们来仔细看一下代码是怎样的:

AllowPaging="True"  
  • 1.

以上代码允许数据进行分页,默认是False。所以,如果你要数据分页,一定要加上这一句。

PageSize="5"  
  • 1.

PageSize和ASP中的一样,表示每页有多少记录。

PagerStyle-HorizontalAlign="Right"  
  • 1.

以上语句表示分页符在页面的位置的右边。

PagerStyle-NextpageText="下一页 >>"   
PagerStyle-PrevPageText="<< 上一页"  
  • 1.
  • 2.

以上语句表示用“下一页”、“上一页”作为分页符号,如果不希望这样,想直接用数字表示,去掉这两句就可以了。

注意:与分页有关的还有PageCount属性,可以得到分页的总数。

3.数据排序

数据排序不是在SQL语句里面就可以设定吗,为什么还要专门来一个数据排序?SQL语句的数据排序只能服务器端设定,如果用户希望按照自己的喜好排序怎么办?ASP里面是没有办法解决的,现在,我们看看ASP.NET数据库怎样解决这个问题。

在DataGrid设置里面加入一下语句:

AllowSorting="true"   
OnSortCommand="Sort_Grid"  
  • 1.
  • 2.

***句表示DataGrid采用要求排序;第二句表示点击排序以后的事件;我们来看看这个事件:

Sub Sort_Grid(Sender As Object,E As DataGridSort CommandEventArgs)   
SortField=E.SortField   
DataGrid1.DataSource=CreateDataSource()   
DataGrid1.DataBind()   
End Sub  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

点击排序以后,首先,设置排序字段为点击的字段,如何重新显示数据。

每一个字段名均是一个LinkButton(连接),点击这个字段名,就可以按这个字段排序。需要注意的是,排序不是对当前页排序,而是对整个DataGrid排序。

4.数据编辑

数据库操作除了数据浏览,***部分其实就是对数据的处理(增加、修改、删除)。数据处理,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=My Base;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 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.

上面代码中,首先创建一个ASP.NET数据库连接,然后建立了一个插入语句,此插入语句使用了以@开头的参数,这一点可能与ASP稍有差别。使用参数之前,必须先创建参数,并要说明参数的数据类型。如何打开连接,执行插入语句就可以了。

以上我们设计到了ASP.NET数据库操作中常用的部分,基本可以实现我们一般编程要求。但是,如果要全面了解ASP.NET数据库的功能,以上显然是不够的,这需要我们更加不断地学习其他ASP.NET数据库的知识,融会贯通。

【编辑推荐】

  1. ASP.NET数据库编程入门
  2. 专题:ASP.NET数据库开发手册
  3. ASP.NET数据库程序开发步骤
  4. ASP.NET与MySQL数据库开发详解
  5. ASP.NET数据库缓存浅析
责任编辑:林琳 来源: 企业博客
相关推荐

2009-02-23 15:20:03

SQL Server数据库ASP.NET

2009-07-31 09:57:47

ASP.NET数据库缓

2009-07-28 17:36:21

ASP.NET数据库连

2011-07-07 09:03:12

ASP.NET

2009-07-29 09:12:31

ASP.NET数据库连

2009-08-05 15:40:49

ASP.NET连接数据

2009-08-11 12:52:05

ASP.NET数据库程

2009-07-27 17:58:10

ASP.NET数据库编

2010-05-25 08:49:33

连接MySQL

2009-07-28 14:16:31

ASP.NET与MyS

2011-04-13 14:19:52

Asp.Net.Net

2009-07-27 16:37:42

ASP.NET主机

2009-07-20 15:30:11

ASP.NET应用

2009-07-31 16:51:59

ASP.NET数据库驱

2010-06-07 14:34:49

连接MySQL 数据库

2009-07-29 09:33:14

ASP.NET数据库连

2011-07-12 14:37:47

ASP.NET链接字符串

2009-07-20 17:03:55

批量插入数据ASP.NET

2011-08-01 23:34:34

ASP.NETOracle

2009-07-31 17:07:40

ASP.NET数据库连
点赞
收藏

51CTO技术栈公众号