经验分享: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数据库的名字空间有这些:

  1. <%@ Import NameSpace="System.Data.SQL"%>   
  2.  
  3. <Script Language="VB" RunAt="Server">   
  4. Function createdatasource()   
  5. Dim conn AS SQLConnection   
  6. Dim connstr As String   
  7. Dim strsql AS String   
  8. Dim sqlCmd AS SQLDataSetCommand   
  9. Dim ds AS New DataSet   
  10. '连接数据库   
  11. connstr=   
  12. "Server=NHGA-D36KQ26TWB;DataBase=NorthWind; Pwd=;Uid=sa"   
  13. conn= New SQLConnection(connstr)   
  14. 'SQL语句   
  15. strsql="Select * from Products "   
  16. '建立DataSet   
  17. sqlCmd=New SQLDataSetCommand(strsql,conn)   
  18. '将表Products加入DataSet   
  19. sqlCmd.FillDataset(ds,"Products")   
  20.  
  21. return ds.Tables("Products").DefaultView   
  22. end Function   
  23.  
  24. '绑定数据函数   
  25. sub BindGrid()   
  26. DataGrid1.DataSource=CreateDataSource()   
  27. DataGrid1.DataBind()   
  28. End Sub   
  29.  
  30. '页面登录   
  31. Sub Page_Load(Source AS Object,E AS EventArgs)   
  32. CreatedataSource()   
  33. BindGrid()   
  34. End Sub   
  35. </Script>   
  36.  
  37. <html>   
  38.  
  39. <head>   
  40. <meta http-equiv="Content-Language" content="zh-cn">   
  41. <meta http-equiv="Content-Type" content="text/html; charset=gb2312">   
  42. <meta name="GENERATOR" content="Microsoft FrontPage 4.0">   
  43. <meta name="ProgId" content="FrontPage.Editor.Document">   
  44. <title>ASP.NET数据库使用</title>   
  45. </head>   
  46.  
  47. <body>   
  48. <Form RunAt="Server">   
  49. <ASP:DataGrid id="DataGrid1" RunAt="Server" />   
  50. </Form>   
  51. </body>   
  52.  
  53. </html>  

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

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

二、基本数据库应用

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

1.界面设置

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

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

修改为:

  1. <ASP:DataGrid id="DataGrid1" RunAt="Server"   
  2. BorderColor="black"   
  3. BorderWidth="1"   
  4. CellPadding="3"   
  5.  
  6. BackImageUrl=""   
  7. BackColor="#FFCCCC"   
  8. ForeColor="Black"   
  9.  
  10. HeaderStyle-BackColor="#CCCCFF"   
  11. HeaderStyle-ForeColor="Blue"   
  12.  
  13. AlternatingItemStyle-BackColor="#F3f3f3"   
  14. >   
  15. </ASP:DataGrid>  

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

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

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

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

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

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

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

  1. AlternatingItemStyle-BackColor="#F3f3f3"  

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

2.数据分页

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

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

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

  1. AllowPaging="True"  

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

  1. PageSize="5"  

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

  1. PagerStyle-HorizontalAlign="Right"  

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

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

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

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

3.数据排序

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

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

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

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

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

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

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

4.数据编辑

数据库操作除了数据浏览,***部分其实就是对数据的处理(增加、修改、删除)。数据处理,ASP.NET数据库和ASP没有太多的区别,我们看一个增加数据的例子就可以了解ASP.NET数据库编辑的实现了。

  1. Sub InsertRec()   
  2. Dim conn AS SQLConnection   
  3. Dim connstr As String   
  4. Dim sqlinsertcmd AS SQLCommand   
  5. Dim sqlinsert AS String   
  6.  
  7. connstr="Server=NHGA-D36KQ26TWB;DataBase=My Base;Pwd=;Uid=sa"   
  8. conn= New SQLConnection(connstr)   
  9.  
  10. sqlinsert="Insert Into MyTable(title,name,content)Values (@title,@name,@content)"   
  11. sqlinsertcmd=New SQLCommand(sqlinsert,conn)   
  12.  
  13. sqlinsertcmd.parameters.Add(New SQLParameter("@title", SQLDataType.varchar,20))   
  14. sqlinsertcmd.parameters.Add(New SQLParameter("@name", SQLDataType.varchar,20))   
  15. sqlinsertcmd.parameters.Add(New SQLParameter ("@content", SQLDataType.varchar,20))   
  16.  
  17. sqlinsertcmd.parameters.item("@title").value="Test3"   
  18. sqlinsertcmd.parameters.item("@name").value="Test3"   
  19. sqlinsertcmd.parameters.item("@content").value="Test3"   
  20.  
  21. conn.open()   
  22. sqlinsertcmd.execute()   
  23.  
  24. End Sub 

上面代码中,首先创建一个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-28 14:16:31

ASP.NET与MyS

2010-05-25 08:49:33

连接MySQL

2009-07-27 17:58:10

ASP.NET数据库编

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-20 17:03:55

批量插入数据ASP.NET

2011-08-01 23:34:34

ASP.NETOracle

2010-06-07 14:34:49

连接MySQL 数据库

2009-07-31 16:51:59

ASP.NET数据库驱

2009-07-29 09:33:14

ASP.NET数据库连

2011-07-12 14:37:47

ASP.NET链接字符串

2009-07-31 17:07:40

ASP.NET数据库连
点赞
收藏

51CTO技术栈公众号