ASP中连接数据库的5种方法

第一种 - 这种方法用在ACCESS中最多
strconn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("aspfree.mdb")
set conn = server.createobject("adodb.connection")
conn.open strconn
第二种-这种方法用在SQL SERVER中多
strconn = "Driver={SQL
Server};Description=sqldemo;SERVER=127.0.0.1;UID=LoginID;PWD=Password;DATABASE=Database_Name
set conn = server.createobject("adodb.connection")
conn.open strconn
第三种
strconn="Driver={MicrosoftAccessDriver(*.mdb)};" &_
"DBQ=F:\Inetpub\wwwroot\somedir\db1.mdb;DefaultDir=f:\Inetpub\wwwroot\somedir;uid=LoginID;" &_
"pwd=Password;DriverId=25;FIL=MSAccess;" set conn = server.createobject("adodb.connection")
conn.open strconn
第四种运用系统数据源
The following uses a Data Source Name:
set conn = server.createobject("adodb.connection")
conn.open "Example"
第五种运用ODBC数据源,前提是你必须在控制面板的ODBC中设置数据源
set rs = server.createobject("adodb.recordset")
rs.open "tblname", "DSNName", 3, 3
在ASP中连接数据库(连接字符串)

一、存取数据库的原理

在ASP中,用来存取数据库的对象统称ADO对象(Active Data Objects),主要含有三种对象:Connection、Recordset和Command,其中Connection负责打开或连接数据库,Recordset负责存取数据表,Command负责对数据库执行行动查询(Action Query)命令和执行SQL Server的Stored Procedure。只依靠这三个对象还是无法存取数据库的,还必须具有数据库存取的驱动程序:OLE DB驱动程序和ODBC驱动程序。对于任何一种数据库都必须有相对应的OLE DB驱动程序和ODBC驱动程序,ADO对象才能对数据库进行存取。

ADO对象必须与各种驱动程序相结合才能存取各种类型数据库,不同的数据库需要不同的驱动程序。在Windows 9x/NT的“开始”→“设置”→“控制面板” →“ODBC Data Source(32Bit)”中的“驱动程序”标签页,可以查证机器上究竟装了哪些驱动程序。

二、连接数据库和打开数据表

不同数据库的连接方法有所不同(即建立Connection实例的方法不一样),但建立Connection实例后,利用Recordset对象进行存取数据的方法却大同小异。下面对于不同的数据类型,编写了相对应的连接函数,在程序中直接引用即可。

程序用VB Script脚本语言编写。

1.建立MdbRecordset对象。MDB数据库是一个完整的数据库,内部可能含有若干个数据表,在此函数中,Connection的作用是连接数据库,Recordset的作用是打开数据表。

Function CreateMdbRecordset(数据库文件名, 数据表名或Select语句 )
  Dim conn,Provider,DBPath
  ’建立Connection 对象
  Set conn = Server.CreateObject(“ADODB.Connection”)
  Provider=“Provider=Microsoft.Jet.OLEDB.4.0;”
  DBPath = “Data Source=” & Server.MapPath(“数据库文件名”)
  ’打开数据库
  conn.Open Provider & DBPath
  Set CreateMdbRecordset = Server.CreateObject(“ADODB.Recordset”)
  ’打开数据表
  CreateMdbRecordset.Open “数据表名”, conn, 2, 2
End Function

2.建立带密码的MDB数据库的Recordset对象。它的建立方式与建立不带密码的MDB数据库的Recordset对象类似,只是多了一个密码参数,即在与数据库连接时,必须给出密码信息。

Function CreateSecuredMdbRecordset( 数据库文件名, 数据表名或Select语句,password )
 Dim conn,Provider,DBPath
 ’建立Connection 对象
 Set conn = Server.CreateObject(“ADODB.Connection”)
 Provider = “Provider=Microsof.Jet.OLEDB.4.0;”
 DBPath = “Data Source=”& Server.MapPath(“数据库文件名”)
 ’连接数据库,注意要带有密码参数
 conn.Open Provider & DBPath&“Jet OLEDB:Database Password=”&assword
 Set CreateSecuredMdbRecordset = Server.
 CreateObject(“ADODB.Recordset”)
 ’打开数据表
 CreateSecuredMdbRecordset.Open “数据表名”, conn, 2, 2
End Function

3.DBF文件不是一个标准的数据库文件,只相当于标准数据库文件中的一个数据表,所以为了使用DBF文件,可以把所有的DBF文件放在一个目录下,这样把目录名看成标准数据库,每一个DBF文件相当于标准数据库中的数据表。下面函数中的Directory是DBF所在的目录名。

Function CreateDbfRecordset( 目录名, DBF文件名或Select语句 )
 Dim conn,Driver,SourceType,DBPath
 ’建立Connection 对象
 Set conn = Server.CreateObject(“ADODB.Connection”)
 Driver=“Driver={Microsoft Visual FoxProDriver};” SourceType = “SourceType=DBF;”
 DBPath=“SourceDB=” & Server.MapPath(“目录名”)
 ’调用Open 方法打开数据库
 conn.Open Driver & SourceType & DBPath
 Set CreateDbfRecordset = Server.CreateObject(“ADODB.Recordset”)
 ’打开DBF文件
 CreateDbfRecordset.Open “DBF文件名或Select语句”, conn, 2, 2
End Function

4.由FoxPro生成的DBC数据库与MDB数据库相似,都是一个数据库包含几个数据表的形式,所以对DBC数据库的存取方法与MDB数据库相似。

Function CreateDbcRecordset( DBC数据库文件名, 数据表名或Select语句 )
 Dim conn,Driver,SourceType,DBPath
 ’建立Connection 对象
 Set conn = Server.CreateObject(“ADODB.Connection”)
 Driver=“Driver={Microsoft Visual FoxPro Driver};”
 SourceType = “SourceType=DBC;”
 DBPath = “SourceDB=” & Server.MapPath(“DBC数据库文件名”)
 ’连接数据库
 conn.Open Driver & SourceType & DBPath
 Set CreateDbcRecordset = Server.CreateObject(“ADODB.Recordset”)
 ’打开数据表
 CreateDbcRecordset.Open“数据表名或Select语句”, conn, 2, 2
End Function

5.将Excel生成的XLS文件(book)看成一个数据库,其中的每一个工作表(sheet)看成一个数据库表。

Function CreateExcelRecordset(XLS文件名,Sheet名)
 Dim conn.Driver,DBPath
 ’建立Connection对象
 Set conn = Server.CreateObject(“ADODB.Connection”)
 Driver=“Driver={Microsoft Excel Driver (*.xls)};”
 DBPath = “DBQ=” & Server.MapPath(“XLS文件名”)
 ’调用Open 方法打开数据库
 conn.Open Driver & DBPath
 Set CreateExcelRecordset = Server.CreateObject(“ADODB.Recordset”)
 ’打开Sheet
 CreateExcelRecordset.Open “Select * From [”&sheet&“$]”, conn, 2, 2
End Function

6.SQL Server属于Server级的数据库,使用时要求比较严格,必须要输入用户名及密码才能使用。

Function CreateSQLServerRecordset(计算机名称,用户ID, 用户密码,数据库名称 数据表或查看表或Select指令 )
 Dim Params, conn
 Set CreatSQLServerConnection = Nothing
 Set conn = Server.CreateObject (“ADODB.Connection”)
 Params = “Provider=SQLOLEDB.1”
 Params = Params & “;Data Source=” & Computer
 Params = Params & “;User ID=” & UserID
 Params = Params & “;Password=” & Password
 Params = Params & “.Initial Catalog=”&数据库名称
 Conn open Paras
 Set CreateSQLServerRecordset = Server. CreateObject(“ADODB.Recordset")
 CreateSQLServerRecordset.Open source, conn, 2, 2
End Function
一、Recordset 对象简述

  Recordset 对象表示的是来自基本表或命令执行结果的记录全集。在任何情况下,该对象所指的当前记录均为集合内的单条记录。使用 Recordset 对象可以操作来自提供程序的数据,通过该对象几乎可以对所有数据进行操作。所有 Recordset 对象均使用记录(行)和字段(列)进行构造。Recordset 对象实际上是依附于 Connection 对象和 Command 对象之上的。通过建立及开启一个 Connection 对象,可以与我们关心的数据库建立连接;通过使用 Command 对象,则可以告诉数据库我们想要做什么:是插入一条记录,还是查找符合条件的记录;通过使用 Recordset 对象,则可以方便自如地操作 Command 对象返回的结果。

   二、创建 Recordset 对象

  要使用 Recordset 对象处理结果,首先必须创建 Recordset 对象实例。其格式如下:

Set RS=Server.CreateObject("adodb.recordset")

   三、打开记录集

RS.Open Source,ActiveConnection,CursorType,LockType,Options

  所有的参数都是可选项。Source 为 Command 对象变量名、SQL 语句、表名、存储过程调用或持久 Rcordset 文件名。

  ActiveConnection 为有效的 Connection 对象变量名或包含 ConnectionString 字符串。

  LockType 指定打开 Recordset 时应使用的锁定类型。

  Options 指定如何计算 Source 参数或从以前保存 Recordset 的文件中恢复 Recordset。

     四、Recordset 对象的常用属性

Recordset 对象的常用属性<表> 属 性 描   述 / 注 解 ActiveConnection指定与数据提供者的连接信息,用来指定当前的 Recordset 对象属于哪个 Connection 对象。 Source指定 Recordset 对象的数据源,可以是一个 Command 对象名、SQL 语句、数据库表或存储过程 。 CoursorType指定 Recordset 对象所使用的光标类型。 共有 4 种光标类型:

  0 一 前滚光标,光标只能向前移动,执行效率高。是 Cursor 的默认值;

  1 一 键盘光标,光标可向前或向后移动,Recordset 记录集同步反映自它创建后其他用户所作的修改和删除,但却不能同步反映自它创建后其他用户新增加的记录;

  2 一 动态光标,光标可向前或向后滚动,任何时候 Recordset 记录集都同步反映其他用户的任何操作;

  3 一 静态光标,光标可向前或向后移动,自创建后无法同步反映其他用户所做的任何操作,它的功能简单但消耗资源少。

adOpenForwardOnly 0 缺省值,启动一个只能向前移动的游标(Forward Only)。 adOpenKeyset 1 启动一个Keyset类型的游标。 adOpenDynamic 2 启动一个Dynamic类型的游标。 adOpenStatic 3 启动一个Static类型的游标
LockType表示编辑时记录的锁定类型。它决定了当不止一个用户试图同时改变一个记录时,Recordset 如何处理数据记录。0 一 只读锁定,记录只读,不能更新 Recordset ,为 LockType 的默认值;

  1 一 悲观锁定,编辑记录开始立刻锁定,直到提交给数据提供者;

  2 一 乐观锁定,一次锁定一条记录,只有调用 Update 方法提交数据时才锁定记录;

  3 一 乐观的批量更新,允许同时更新多条记录。

adLockReadOnly 1 缺省值,Recordset对象以只读方式启动,无法运行AddNew、Update及Delete等方法 adLockPrssimistic 2 当数据源正在更新时,系统会暂时锁住其他用户的动作,以保持数据一致性。 adLockOptimistic 3 当数据源正在更新时,系统并不会锁住其他用户的动作,其他用户可以对数据进行增、删、改的操作。 adLockBatchOptimistic 4 当数据源正在更新时,其他用户必须将CursorLocation属性改为adUdeClientBatch才能对数据进行增、 删、改的操作。
Filter用来设定一个过滤条件,以便对 Recordset 记录进行过滤。 CacheSize表示一个 Recordset 对象在高速缓存中的记录数。Maxrecords执行一个 SQL 查询时,返回 Recordset 对象的最大记录数。Bof判断记录指针是否到了第一条记录之前。Eof判断记录指针是否到了最后一条记录之后。RecordCount返回 Recordset 对象的记录数,(在使用键盘光标时,该属怀返回 的可能是不太准确的数值;一般情况下,并不用这种方法来统计 Recordset 中的记录数,因为它的性能并不稳定)Bookmark书签标记,用来保存当前记录的位置。AbsolutePosition用来设定 Recordset 对象中当前记录的顺序位置是第几行记录。PageSize表示 Reccordset 对象的页面大小(每页多少条记录),默认值为10。PageCount表示 Recordset 对象的页面个数。 AbsolutePage表示当前记录的页号。EditMode指示当前记录的编辑状态,0 一 已被编辑;1 一 已被修改而未提交;2 一 存入数据库的新记录 。 Status对 Recordset 对象进行批量更新后,查询当前记录的状态。 值意义描述值意义描述0记录更新成功。1024存在记录锁定,新记录未保存。1新记录。2048使用乐观并发事件,未保存。2记录被删除。4096用户违反完整性规则,记录未保存。4记录未被删除。8192

  很待定修改,记录未保存。

8记录未被修改。16384与一存储对象相冲突,记录未保存。16书签不合法,记录未保存。32768内存不够,记录未保存。64影响多个记录,未保存。65536用户没有中、足够的权限,未保存。128指向一待定插入,记录未保存。131072违反基本数据库原则,记录未保存。256操作被取消,记录未保存。262144记录已从数据源删除。    

  五、Rcordset 对象的方法

Recordset 对象的方法<表二> 方法描述 / 格式 / 注解 Open打开一个 Recordset 对象。Rs.Open[Source][,ActiveConnection][,CursorType][,LursorType][,Option]Rs :为已经建立的 Recordset 对象;

  Source :为可选参数,可以是一个 Command 对象名、SQL 语句、数据库表或存储过程; 

  ActiveConnection :定义与数据库的连接信息;

  CursorType :是Recordset 对象所使用的光标类型;

  LockTypec 是编辑 Recordset 对象记录时所使用的锁定类型;

  Option 指示数据提供者如何处理 Source 的内容类型,其参数值及其意义见下表:

  Options值意义描述1表示被执行的字符串包含一个命令文本。2表示被执行的字符串包含一个表名。4表示被执行的字符串包含一个存储过程名。8没有指定字符串的内容(这是默认值)

Close关闭一个 Recordset 对象。 但并不从内存中删除该对象,只是无法读取其中的数据,但仍然可以读取它的属性。因此一个关闭的 Recordset 对象还可以用 Open 方法打开并保持其原有属性。 Rs.CloseRs:为已经建立的 Recordset 对象;如果正进行编辑更新数据的操作,则在使用此方法之前必须先调用 Update 和 CancelUpdate 方法。否则将会出现错误。Clone创建一个 Recordset 对象的完全拷贝,但只有所用的 Recordset 对象类型允许使用 Bookmarks时才能使用该方法。MoveFirst把 Recordset 指针指向第一行记录。 Rs.MoveFirstMoveLast把 Recordset 指针指向最后一条记录(该 Recordset 必须支持书签)。Rs.MoveLastMovePrevious把Recordset 指针上移一行(使用前应判断 BOF 是否为真,该方法必须支持书签)。Rs.MovePreviorsMoveNext把Recordset 指针下移一行(使用前应判断 EOF 是否为真)。Rs.MoveNextMove把Recordset 指针指向指定的记录。Move n [,start]n 为要移动的记录数,取正时表示向前(下)移动,取负时表示向后(上)移动;

  start 是可选参数,表示移动的起点。

GetRows从一个 Rexordset 对象读取一行或多行记录到一个数组中。Myarray=Rs.GetRows ( rows,start,fields ) Myarray 为目标数组名;Rs 为已创建的 Recordset 对象,Rows 为返回数组的行数;start 为读取数据的起点 (书签);Fields 为 Recordset 的字段。 NextRecordSet清除当前的 Recordset 并执行下一条指令,以传回下一个 Recordset 对象,如果没有下一条指令,则返回 Nothing 给 Recordset 。Requery重新执行 SQL 操作,以更新 Recordset 对象中的数据。Resync从数据源更新当前的 Recordset 记录,实现与数据源的同步。Addnew增加一条空记录。Rs.AddNew N增加一条空记录,并将数组中的元素(N)添加到这条空记录中。Delete删除当前记录。Delete [value] 如果 value=1(默认值)表示该方法只删除当前记录,value=2 表示该方法删除所有由 Filter 属性设定的记录。 Update保存当前记录的任何变动。Rs.UpdateCancelUpdate取消前一个 Update 方法所做的一切修改。UpdateBatchRecordset 工作在批量方式时,取消对 Recordset 的更新。Suports获取创建的 Recordset 对象的能力信息。注:使用 Move 、MoveFirst 、MoveLast 、MovePrevious 、MoveNext 方法移动记录指针时,需要注意 Rrcordset 对象的光标类型。如“前滚光标”限制了记录指针只能向前移动。

   六、Recordset 对象的应用实例

   1、这是一个简单的员工基本情况管理系统,其功能有:1)、添加员工资料;2)、更改员工资料;3)、删除员工资料。它包含着六个页面和一个数据库。分别为:

   1)、主页面:index.asp

   2)、添加数据页面:add.htm

   3)、保存添加数据页面:add.asp

   4)、更改数据页面:Update.asp

   5)、保存更改数据页面:Update2.asp

   6)、删除记录页面:Detele.asp

   7)、数据库:RSGL.mdb.用到该数据库中的”员工基本情况表“。

   2、各页面的代码如下:

   1)、主页面:index.asp。该页面的功能有:

  a、创建两个对象,Connectiion对象和Recordset对象,其目的是连接数据库和返回一个记录集;

  b、创建一个表格,使do while循环语句将各条记录在表格中显示出来;

  c)、创建三个超连接,一个用以连接添加数据页面,另一个通过指定的员工姓名连接到更改数据页面,还有一个通过指定的员工姓名连接到删除页面。

<% @ Language="VBScript" %>
<html>
<head><title>员工基本情况管理系统</title></head>
<body>
<%
'****************创建两个对象(连接对象、记录集对象)*********************
dim cnn,rst
set cnn=Server.CreateObject("ADODB.Connection")
set rst=Server.CreateObject("ADODB.Recordset")
'指定连接字符串,
cnn.ConnectionString="PROVIDER=Microsoft.jet.OLEDB.4.0;Data Source=" & server.MapPath("../rsgl.mdb")
cnn.Open
sSQL="select * from 员工基本情况表"
'rst.Open sSQL,cnn,1,1
set rst=cnn.Execute(sSQL,,adCmdText)
%>
<!--************创建一个表格,用以显示数据库中的各条记录***********-->
<table align="center" border="1"><caption><h3>教职员工基本情况表</h3></caption>
<tr colspan="5"><td><a href="add.htm">添加记录</a></td></tr>
<!--显示各字段名-->
<tr><td align="center">员工姓名</td><td align="center">所在部门</td><td align="center">家庭住址</td><td align="center">家庭电话</td><td align="center">Email</td><td align="center">状态</td>
<%
'使用do while循环语句将各条记录显示出来。
do while Not rst.eof
t1=rst("员工姓名")
t2=rst("所在部门")
t3=rst("家庭住址")
t4=rst("家庭电话")
t5=rst("Email")
tt="<tr align='center'><td>" & t1 & "</td><td>" &t2& "</td><td>" &t3& "</td><td>" &t4& "</td><td>" &t5& "</td><td>"
tt=tt & "<a href=Update.asp?id=" & t1 & ">修改</a><a href=Detele.asp?id=" & t1 & ">||删除</a></td></tr>"
response.write tt
rst.MoveNext
loop
cnn.Close
Set cnn=Nothing
%>
</table>
</body>
</html>       2)、添加数据页面:add.htm 。本页面由一个表单组成,其功能是向保存添加数据页面(add.asp)提交数据。 <html>
    <head><title>添加记录</title></head>
<body>
<div align="center">
<form name="form1" method="post" action="add.asp">
<table align="center" border="1">
<tr><td colspan="2" align="center">员工基本情况表</td></tr>
<tr><td align="right">员工姓名:</td>
<td><input type="text" name="txtName"></td></tr>
<tr><td align="right">所在部门:</td>
<td><input type="text" name="txtDepartment"></td></tr>
<tr><td align="right">家庭住址:</td>
<td><input type="text" name="txtAddr"></td></tr>
<tr><td align="right">家庭电话:</td>
<td><input type="text" name="txtTel"></td></tr>
<tr><td align="right">Email:</td>
<td><input type="text" name="txtemail"></td></tr>
<tr><td align="center"><input type="submit" value="提交"></td>
<td align="center"><input type="reset" value="全部重写"></td></tr>
</table>
</form>
<a href="index.asp">返回首页</a>
</div>
</body>
</html>    

  3)、保存添加数据页面:add.asp。该页面的功能有:a)、使用Request对象获取从add.htm页面提交的值;b)、创建三个对象(一个连接对象、二个记录集对象),通过rs.addnew,rs.update两个函数将数据保存到数据库;c)、显示信息提示框。

<% @ Language="VBScript" %>
    <html>
<head>
<title>添加记录</title>
</head>
<body>
<!-- #include virtual ="/adovbs.inc" -->
<%
'**************使用Request对象获取从add.htm页面中提交的值************************************
Name1=Request.Form("txtName")
Department=Request.Form("txtDepartment")
Addr=Request.Form("txtAddr")
Tel=Request.Form("txtTel")
Email=Request.Form("txtEmail")
if Tel="" then
Tel="不祥"
end if
if Email="" then
Email="不祥"
end if
if name1="" or department="" or Addr="" then
%>
<script language="vbscript">
alert("员工姓名、所在部门和家庭住址中只少有一项为空,请填写完整。")
history.back
</script>
<%
else
'****************创建三个对象(一个连接对象、二个记录集对象)*********************
dim cnn,rst
set cnn=Server.CreateObject("ADODB.Connection")
'指定连接字符串,
cnn.ConnectionString="PROVIDER=Microsoft.jet.OLEDB.4.0;Data Source=" & server.MapPath("../rsgl.mdb")
cnn.Open
'建立Recordset对象并以追加记录方式打开数据库。
set rst=Server.CreateObject("ADODB.Recordset")
set rst1=Server.CreateObject("ADODB.Recordset")
sSQL="select * from 员工基本情况表 where 员工姓名='" & name1 & "'"
rst.Open sSQL,cnn,1,1
if rst.EOF or rst.BOF then '如果数据表中无此数据,则添加记录。
rst1.Open "员工基本情况表",cnn ,1,2
rst1.addnew array("员工姓名","所在部门","家庭住址","家庭电话","Email"),array(name1,Department,Addr,Tel,Email)
rst1.update
%>
<!--**********显示信息提示框**************-->
<script language="vbscript">
alert("记录添加成功!")
window.location.href="index.asp"
</script>
<%
rst1.close
set rst1=nothing
else
%>
<script language="vbscript">
alert("员工姓名为:“<%=name1 %>” 的记录已经存在。")
history.back
</script>
<%
end if
rst.close
set rst=nothing
end if
%>
<h3>记录添加成功!</h3>
<p><a href="add.htm">返回记录添加表单</a> || <a href="index.asp">返回首页</a>
</center>
</body>
</html>

  4)、更改数据页面:Update.asp。该页面的功能有:a、创建两个对象,Connectiion对象和Recordset对象,其目的是连接数据库和返回一个记录集;b、创建一个表单,其目的是提交更改过的数据

<%
a=request("id")
response.write a
'response.end
'****************创建两个对象(连接对象、记录集对象)*********************
dim cnn,rst,cmd
set cnn=Server.CreateObject("ADODB.Connection")
set rst=Server.CreateObject("ADODB.Recordset")
'指定连接字符串,
cnn.ConnectionString="PROVIDER=Microsoft.jet.OLEDB.4.0;Data Source=" & server.MapPath("../rsgl.mdb")
cnn.Open
sSQL="select * from 员工基本情况表 where 员工姓名='" & a & "'"
'rst.Open sSQL,cnn,1,1
set rst=cnn.Execute(sSQL,,adCmdText)
%>
<html>
<head><title>更改记录</title></head>
<body>
<div align="center">
<!--****************创建一个表单*****************************-->
<form name="form1" method="post" action="Update2.asp">
<table align="center" border="1">
<tr><td colspan="2" align="center">员工基本情况表</td></tr>
<tr><td align="right">员工姓名:</td>
<td><input type="text" name="txtName" value=<%=rst("员工姓名")%> readonly></td></tr>
<tr><td align="right">所在部门:</td>
<td><input type="text" name="txtDepartment" value=<%=rst("所在部门")%>></td></tr>
<tr><td align="right">家庭住址:</td>
<td><input type="text" name="txtAddr" value=<%=rst("家庭住址")%>></td></tr>
<tr><td align="right">家庭电话:</td>
<td><input type="text" name="txtTel" value=<%=rst("家庭电话")%>></td></tr>
<tr><td align="right">Email:</td>
<td><input type="text" name="txtemail" value=<%=rst("Email")%>></td></tr>
<tr><td align="center"><input type="submit" value="提交"></td>
<td align="center"><input type="reset" value="全部重写"></td></tr>
</table>
</form>
</div>
</body>
</html>

  5)、保存更改数据页面:Update2.asp。 该页面的功能有:a)、使用Request对象获取从Update.asp页面提交的值;b)、创建二个对象(连接对象、记录集对象);c)、通过表格显示更改后的记录。

<% @ Language="VBScript" %>
<%
'*****************从提交表单中提取数值***************************
Dim Name,Department,Addr,Tel,Email
Name=Trim(Request.Form("txtName"))
Department=Trim(Request.Form("txtDepartment"))
Addr=Trim(Request.Form("txtAddr"))
Tel=Trim(Request.Form("txtTel"))
Email=Trim(Request.Form("txtEmail"))
%>
<html>
<head>
<title>更改记录</title>
</head>
<body>
<!-- #include virtual ="/adovbs.inc" -->
<%
'****************创建二个对象(连接对象、记录集对象)*********************
dim cnn,rst,cmd
set cnn=Server.CreateObject("ADODB.Connection")
set rst=Server.CreateObject("ADODB.Recordset")
'指定连接字符串,
cnn.ConnectionString="PROVIDER=Microsoft.jet.OLEDB.4.0;Data Source=" & server.MapPath("../rsgl.mdb")
cnn.Open
sSQL="update 员工基本情况表 set 所在部门='" & Department & "',家庭住址='" & Addr & "',家庭电话='" & Tel & "',Email='" & Email & "' where 员工姓名='" & name & "'"
rst.Open sSQL,cnn,1,2
set rst=nothing
%>
<!--**************************用表格显示记录。**********************-->
<table align="center" border="1">
<tr><td colspan="2" align="center">员工基本情况表</td></tr>
<tr><td align="right" width="130" align="center">员工姓名:</td>
<td width="200"><%=Name %></td></tr>
<tr><td align="right">所在部门:</td>
<td><%=Department %></td></tr>
<tr><td align="right">家庭住址:</td>
<td><%=Addr %></td></tr>
<tr><td align="right">家庭电话:</td>
<td><%=Tel %></td></tr>
<tr><td align="right">Email:</td>
<td><%=Email %></td></tr>
</table>
<center>
<p><hr width="505" color="#cc9999">
<h3>记录更改成功!</h3>
<p><a href="index.asp">返回首页</a>
</center>
</body>
</html>

  6)、删除数据页面:Detele.asp。 a)、使用Request对象获取要删除的员工姓名;b)、创建二个对象(连接对象、记录集对象);c)、给出删除成功提示框。

<% @ Language="VBScript" %>
<%
'从提交表单中提取数值
Dim Name
Name=Trim(Request.Querystring("id"))
%>
<html>
<head>
<title>更改记录</title>
</head>
<body>
<!-- #include virtual ="/adovbs.inc" -->
<%
'****************创建二个对象(连接对象、记录集对象)*********************
dim cnn,rst,cmd
set cnn=Server.CreateObject("ADODB.Connection")
set rst=Server.CreateObject("ADODB.Recordset")
'指定连接字符串,
cnn.ConnectionString="PROVIDER=Microsoft.jet.OLEDB.4.0;Data Source=" & server.MapPath("../rsgl.mdb")
cnn.Open
sSQL="delete from 员工基本情况表 where 员工姓名=" & "'" & Name & "'"
rst.Open sSQL,cnn,1,2
set rst=nothing
ifo="员工姓名为:“" & name & "” 的记录已被您成功的删除!"
%>
<script languge="vbscript">
alert("<%=ifo %>")
window.location.href="index.asp"
</script>
<p><a href="index.asp">返回记录添加表单</a>
</center>
</body>
</html>

posted on 2007-07-27 09:37  苗SIR  阅读(286)  评论(0编辑  收藏  举报