如何在ASP中使用数据库

   本篇教大家如何在ASP中使用数据库:

  ASP有一个最重要的功能,就是它可以让你非常轻松地连接数据库。通常都是和一个Access或者一个SQL数据库相连。因为Access是最容易起步的,同时,在你的机器上也许已经都装有Access了,所以,在下面的例子中,我们都将使用Access来做例子。一旦你学习了ASP和Access数据库连接的核心技术方法,当你开始使用SQL server的时候,你就会发现,两者所需要的关键技术是基本相同的。

  当你要连接数据库的时候,你需要在服务器上将这个数据库打开。你可以通过使用数据源名(DSN)或者通过在你的脚本语言中直接使用一个DSN-less连接的方法来连接和打开数据库。

  创建一个数据源名(DSN)

  你可以通过在控制面板中给你的数据库建立一个系统DSN来使你的数据库可以在ASP中连接使用。你可以在你的本地计算机上建立若干个DSN,每个DSN对应你使用的不同的数据库。在建立完DSN之后,你就可以在你的本地服务器上测试你的页面了。如果你的网站是由

  ISP提供服务的,并且这个ISP支持ASP,那么很有可能它就会提供一个GUI接口,来给你的数据库创建一个DSN。

  在Windows 95/98/NT中,打开控制面板(开始菜单->设置->控制面板),双击ODBC进入。

  选择系统DSN,点击Add。

  选择“Microsoft Access Driver”,点击结束。

  填写数据源名。这是你给你的数据库起的名字,所以和一个alias是同样的操作。

  在数据库选择中点击选择按钮,浏览系统中你创建的Access数据库所存放的位置。

  点击OK

  现在,新的DSN现在就会在系统DSN中显示,并且可以在你的本地服务器上使用了。

  连接数据库

  让我们建立一个DSN-less连接,并且看看是如何连接数据库的。当你创建一个DSN的时候,你就已经存储了关于这个数据库的一些信息,所以你不需要在每次需要使用一些信息的时候重复它们,这些信息如:数据库类型、名称、存放地点和可选性、用户和密码。

  要创建一个DSN-less连接,你就需要提供同样的信息。下面这个例子就显示了如何给一个叫products的数据库建立一个DSN-less连接:

  第二行定义了数据库的驱动和物理路径。为了要使用一个DSN-less连接,你就需要知道实际的文件存放地点(绝对路径)。Server.MapPath给任何一个使用主机服务的人提供了一个简单的工作环境来查找出那些难于查到的实际访问路径。

  如果我们已经建立了一个系统DSN,并命名为products,则连接码应该为:

  现在,数据库就已经打开了,那么你可以做些什么呢?第一件事情当然就是阅读数据库中的一系列记录,并将它们放到你的页面中去。但是,在这之前,你需要一个recordset。

  Recordset

  一个recordset是存储在特殊数据库表上的所有信息。所以,当你打开这个recordset的时候,表中所有的行和列的内容都是可访问的。你需要打开这个recordeset,正如你需要打开数据库连接一样。它们的命令是相似的:

  Set objRec = Server.CreateObject ("ADODB.Recordset")

  objRec.Open "downloadable", strConnect, 0,1,2

  这个语句就创建了一个名为downloadable表的recordset(objRec),这个表在products数据库的strConnect中定义。使用Recordset open, 我们就可以循环浏览这个表,并且可以将它的所有内容都显示到屏幕上。或者,我们可以测试特定字段的内容,也可以只将我们关注的内容写到屏幕上去。

  每一列代表一个字段。所以,如果数据库表如下所示:


Product ID


 SKU


 Name


 File


 1


 PR12345


 Product A


 install_a.exe


 2


 PR12346


 Product B


 Install_b.exe

  那么,我们就有如下字段的内容:ProductID, SKU, Name, 和File。你的表很可能会有许多额外的字段内容,可能包含很多东西,如价格或者是产品(商品)描述。但是这个示意图可以给你提供最基本的数据库表的概念。

  填写recordset内容

  使用recordset是非常容易的一件事情。如果你想要循环浏览数据库,并将所有的信息都打印到屏幕上显示,你可以按照下面来操作:

  While NOT objRec.EOF

  ' says to do this as long as we haven't reached the end of the file

  Response.WriteobjRec("ProductID") & ", "

  Response.WriteobjRec("SKU") & ", "

  Response.WriteobjRec("Name") & ", "

  Response.WriteobjRec("File") & "

  "

  objRec.MoveNext

  Wend ;

  即使你没有如此使用过loop,你仍然可以通过阅读这个代码来将信息写到comma-delimited字符串里,并且当数据库表中创建了一个新行的时候,就重新创建一个新的行,来记录表中的那一行。你可以使用同样的方法将数据写到HTML表格中去。通过使用Response.Write添加你的TABLE标签,需要记住以下几点:

  你的HTML 标签和引号中的内容。

  如果你的标签或者内容使用了引号,注意使用双引号:

  .

  使用&来连接变量和HTML/内容信息

  选择recordset中的字段

  假设我们的products数据库同样包含一个叫OS的字段,假设这个字段是一个平台分界符。同样,让我们假设存储在这个字段的数据只能是如下的数据:Windows NT, Windows 95, Windows 98, Windows, Mac, Unix, 或者 Linux。

  下面,我们就可以确认我们需要将哪个字段打印到屏幕上,而要忽略哪些那些字段。或者,我们可以选择哪些字段用一种格式,而另外的字段用其它的格式,如,使用不同的颜色。

  使用一个简单的If...,循环就可以给我们提供更多的数据库控制权利。首先让我们来打印有关Windows NT产品的记录:

 

  

 

  <%

  While NOT objRec.EOF

  If objRec("OS") = "Windows NT" THEN ' specifies the criteria

  Response.Write "

"

 

  Response.Write "

"

 

  Response.Write "

"

 

  Response.Write "

"

 

  end if

  objRec.MoveNext

  Wend

  %>

 

  

 

 

 

 

 

 

Windows NT Products
" & objRec("ProductID") & " " & objRec("SKU") & " " & objRec("Name") & " " & objRec("File") & "

  添加一个记录

  一旦你开始使用recordset和ASP了,你就会十分希望能够通过网络将数据添加到数据库中去。添加内容是非常重要的,如,当你需要你的网页浏览者留下它们的观点和看法,或者,当你想要进行管理更新的时候。

  下面的代码打开了一个recordset,这个recordset是有关一个有着书本和它们作者名字的数据库表格。你可能曾经看到过这个,但是这次,最后三个说明书定义的指针类型是不同的:adOpenStatic, adLockOptimistic, adCmdTable:

  (如果你没有使用adovbs.inc的复制文件,第三行应该为:objRec.Open "books", bookdb, 3,3,2).

  recordset现在就准备好接收数据了,你只需要告诉它添加什么。在这个情况下,假设我们从表格中取出变量:strBookTitle和strBookAuthor。我们的table, books有两个字段,称作Title 和 Author,所以我们可以通过使用下面的语句来添加一个新的记录:

  strBookTitle和strBookAuthor代表值,通常被用户访问。如果你只是想测试add功能,你可以给title和author添加一个变量――只是需要记住使用引号。在你第一次使用它的时候,你可能会立即打开你的数据库,以确保更新的发生。

  Recordset类型

  在显示的objRec.Open例子中,你会发现在末尾有0,1,2的字样。这些数字代表不同的指针类型。你是用的类型依赖于你将使用它来干什么。例如,如果你不需要修改或增加任何的记录,你可以使用一个Lock类型。而当你计划要修改或者更新数据库的时候,你所选择的类型就会不同。

  0,1,2 实际上代表:

  adOpenForwardOnly, adLockReadOnly, adCmdTable

  当然,如果在你的服务器上已经有了adovbs.inc的备份,那么,你也可以不使用数字,直接使用这些单词。adovbs.inc 包括了这三个常量和其它常量的一个列表。

时间: 2024-08-22 14:29:20

如何在ASP中使用数据库的相关文章

以前收集的一些资料---如何在ASP中通过ODBC调用Excel中的数据

excel|odbc|数据                如何在ASP中通过ODBC调用Excel中的数据    在ASP中通过ODBC调用Excel中的数据方式和普通的通过ODBC调用数据库的方式有一些不同的地方.下面将介绍如何通过ODBC在ASP中使用Excel的数据.    在使用的过程中,要注意的是你需要使用的ODBC驱动为:Microsoft ODBC Driver for Excel. 下面给出一个例子来具体说明如何调用的过程:1.在Excel的电子表格中新建一个叫Range的表单a

以前搜集的一些资料---如何在ASP中实现错误陷阱技术

错误 如何在ASP中实现错误陷阱技术(即实现VB中的所谓的On Error GoTo)代码如下(一共4个文件)1.error1.asp(用来生成错误)<html><head><title>输入数据</title></head> <body> <form method="POST" action="error2.asp" name="form1">  <div

如何在ASP中实现PING (To Tracy)

如何在ASP中实现PING 使用WSH调用系统的Ping命令,将Ping的结果重定向到一个文本文件中去,再把文本文件显示到网页中 具体做法如下:首先, 建一个.BAT文件(例如:myPing.BAT:),这个文件要在ASP中调用,文件代码如下:ping -a %1 > d:\INetPub\cgi-bin\%2.txt (%1)是将来要ping的地址, (%2)是存储ping结果的文件. 以下是ASP的代码: <%Set FileSys = Server.CreateObject("

如何在ASP中实现PING

如何在ASP中实现PING 使用WSH调用系统的Ping命令,将Ping的结果重定向到一个文本文件中去,再把文本文件显示到网页中 具体做法如下: 首先, 建一个.BAT文件(例如:myPing.BAT:),这个文件要在ASP中调用,文件代码如下: ping -a %1 > d:\INetPub\cgi-bin\%2.txt (%1)是将来要ping的地址, (%2)是存储ping结果的文件. 以下是ASP的代码: < % Set FileSys = Server.CreateObject(&q

解决在ASP中执行数据库查询中的特殊字符的问题

解决在ASP中执行数据库查询中的特殊字符的问题 在进行数据库的查询时,会经常遇到这样的情况: 例如想在一个用户数据库中查询他的用户名和他的密码,但恰好该用户使用的名字和密码中有特殊的字符,例如单引号,"|"号 双引号或者连字符"&". 例如他的名字是1'test,密码是A|&900 这时当你执行以下的查询语句时,肯定会报错: SQL = "SELECT * FROM SecurityLevel WHERE UID='" &

ASP中处理数据库图像的方法

数据|数据库 ---- Active Server Pages (ASP) 是服务器端的脚本编写环境,您可用它来创建动态 Web 页或生成功能强大的 Web 应用程序,ASP 使这些工作变得十分简单.ASP 页是包括 HTML 标记.文本和脚本命令的文件.ASP 页可调用 ActiveX 组件来执行任务,例如连接到数据库或进行商务计算.通过 ASP,可为您的 Web 页添加交互内容或用 HTML 页构成整个 Web 应用程序,这些应用程序使用HTML页作为您的客户的界面. ---- 在我们使用A

asp中,数据库查询无法显示

问题描述 asp中,数据库查询无法显示 1C <%@ LANGUAGE=""VBSCRIPT"" %><!--#include file=""conn.asp""--><%Id=Session(""LoginSuccess"")set rs = Server.CreateObject(""ADODB.recordset"&quo

增量数据获取-如何在SQLServer中获取数据库的增量数据?

问题描述 如何在SQLServer中获取数据库的增量数据? 如何在SQLServer中获取数据库的增量数据? ?有如下要求: 1.是获取整个数据库的增量数据,而不是针对单表. 2.对整个目标数据库只有只读的权限,没有写入的权限. 3.目标数据库的的表结构可能是任意的,我们不能依赖于表结构. 4.指定点可以是一个时间点或者其他. 解决方案 获取数据库增量数据的几种方式获取SqlServer数据库数据,转成JSON对象 解决方案二: 经济条件允许的情况下可以使用SQLSERVER2008企业版中的C

sqlite3-如何在eclipse中建立数据库并与SQLite developer连接

问题描述 如何在eclipse中建立数据库并与SQLite developer连接 如题,如何在eclipse中代码建立数据库,或者用哪种更为简洁的方法能够建立数据库并与SQLite developer连接,我尝试用SQLite3,但是显示SQLite3不是内部或外部命令,也不是可运行的程序或批处理文件.求大神指教 解决方案 你是用什么语言? 你试试idea吧,idea直接可以连接多种数据库,并且可以可视化管理. 解决方案二: 没有听说在eclispe建立数据库的,eclipse能够与数据库连接