6.3 数据库访问步骤 (1)建立Connection对象:set conn=server.creatobject(“ADODB.Connection”) http://www.paper51.com
(2)打开一个数据库并与其连接的Open方法的语法: 内容来自论文无忧网 www.paper51.com Connection对象.open “连接数据库信息字符串”[;用户帐号][;用户密码] copyright paper51.com 打开数据库的方法一般有2种。 copyright paper51.com 第一种用DSN方法打开数据库,通过ODBC连接数据库可以先建立对应的数据库的数据源名(DSN)。如在C:\webtest\data文件夹下有个data.mdb的数据库,先用“控制面板”上的ODBC将data.mdb的DSN名设为那么“连接数据库信息字符串”就变为 copyright paper51.com
“DSN=DataSource”或 “DataSource”关键程序代码为: paper51.com <% paper51.com
set conn=server.creatobject(“ADODB.Connection”) 内容来自论文无忧网 www.paper51.com conn.open “DataSource” copyright paper51.com %> http://www.paper51.com 第二种用全路径的方法打开 内容来自论文无忧网 www.paper51.com
如果在连接数据库前没有建立ODBC数据源,就可以采用直接指定ODBC驱动程序名称的方法来建立与数据库的连接。此时的“连接数据库信息字符串”必须以drive 开始,变为“drive={ODBC驱动程序};dbq=”&Server.MapPath(“数据库名”)”。ODBC驱动程序名称取决与具体打开的数据库类型。具体的打开步骤为: paper51.com 先用Server.CreatObject(“ADODB.Connection”)的方法创建一个连接对象,再用“open”方法打开待查询的数据库。具体程序代码为: paper51.com <%' 创建对象 内容来自www.paper51.com 内容来自www.paper51.com set conn=server.creatobject(“ADODB.Connection”) 内容来自论文无忧网 www.paper51.com strconn=“drive={Microsoft Access Drive (*.mdb)}; dbq=” & Server.MapPath(“data/data.mdb”) copyright paper51.com conn.open strconn 内容来自论文无忧网 www.paper51.com %> copyright paper51.com (3)创建recordset 对象 内容来自论文无忧网 www.paper51.com
前面的conn.open 方法只是打开并连接了相应的数据库,数据库通常由一个或多个表组成,所以要存取其中的数据表还必须在建立recordset对象后,才能对其进行各种操作。其具体代码为: http://www.paper51.com <% copyright paper51.com set rs=server.creatobject(“ADODB.Recordset”) paper51.com
strsql=”select * from sut_key where name=’” & nickname & “’and pwd=’” & password &”’” 内容来自www.paper51.com rs.open strsql,conn,1,3 ‘1:表示结果集的类型:可读写,当前数据记录可自由移动 3:表示锁定类型:乐观锁定 paper51.com %> 内容来自www.paper51.com
(4)对数据库进行各种操作 paper51.com 由于ODBC和数据库的查询采用的是语言,所以当前面步骤完成后,即可用SQL查询语言,ASP的各对象、各组件对象的属性、集合与方法对数据库进行各种操作,实现数据库的发布功能。下面结合毕业生信息管理系统来说明。 paper51.com 要查询学号是00121001的基本信息,那么程序中要用到类似于 paper51.com
SELECT * FROM 表名WHRER 查询条件 的SQL语句。关键程序代码如下: copyright paper51.com
<% ------ http://www.paper51.com
RS=Server.CreatObject(“ADODB.Recordset”)’创建数据集.Recordset对象 内容来自www.paper51.com STRSQL=”SELECT * FROM STU_INF WHRER SNO=‘00121001’” http://www.paper51.com RS.open STRSQL,conn,1,3 ‘通过执行STRSQL,将查询结果返回给RS对象 内容来自www.paper51.com IF NOT RS.EOF THEN 内容来自论文无忧网 www.paper51.com ---- 用HTML语句显示学生基本信息的代码---- 内容来自论文无忧网 www.paper51.com ELSE http://www.paper51.com
Response.write(“学号输入有误,数据库中没有该学号”) copyright paper51.com END IF paper51.com %> paper51.com
要删除学号为00121001的学生记录,那么程序中要用到类似于 paper51.com DETELE FROM 表名WHRER 条件 的SQL语句。关键程序代码如下: paper51.com <% ------ copyright paper51.com CMD=Server.CreatObject(“ADODB.COMMAND”)’创建命令集COMMAND对象 http://www.paper51.com STRSQL= “DETELE FROM STU_KEY WHRER SNO=‘00121001’” paper51.com SET CMD.ACTIVECONNECTION=CONN paper51.com CMD.COMMANDTEXT= STRSQL 内容来自论文无忧网 www.paper51.com CMD.EXCUTE http://www.paper51.com IF ERR.NUMBER=0 THEN 内容来自www.paper51.com Response.write(“删除记录成功”) 内容来自论文无忧网 www.paper51.com
ELSE http://www.paper51.com
Response.write(Err.description) http://www.paper51.com
Err.clear '错误被手工处理后要记得清除err对象的内容 内容来自论文无忧网 www.paper51.com
Response.end() http://www.paper51.com END IF copyright paper51.com
%> paper51.com 要添加记录学号为00121001的学生记录,那么程序中要用到类似于 http://www.paper51.com INSERT INTO 表名(字段1,字段2,---,字段n)VALUES(值1,值2,---值n)的SQL语句。关键程序代码如下: http://www.paper51.com
<% ------ 内容来自论文无忧网 www.paper51.com CMD=Server.CreatObject(“ADODB.COMMAND”)’创建命令集COMMAND对象 copyright paper51.com STRSQL= “INSERT INTO STU_KEY(SNO,XM,PWD)VALUES(‘00121001’,‘周兴’,‘123’)” paper51.com SET CMD.ACTIVECONNECTION=CONN paper51.com CMD.COMMANDTEXT= STRSQL copyright paper51.com CMD.EXCUTE copyright paper51.com
IF ERR.NUMBER=0 THEN http://www.paper51.com Response.write(“记录添加成功!”) 内容来自论文无忧网 www.paper51.com ELSE copyright paper51.com Response.write (Err.description) paper51.com Err.clear '错误被手工处理后要记得清除err对象的内容 paper51.com Response.end() copyright paper51.com END IF 内容来自www.paper51.com %> copyright paper51.com 要修改学号为00121001的学生记录,那么程序中要用到类似于 copyright paper51.com UPDATE 数据表 SET 新值 WHERE 条件的SQL语句,关键程序代码如下: copyright paper51.com <% ------ copyright paper51.com
CMD=Server.CreatObject(“ADODB.COMMAND”)’创建命令集COMMAND对象 http://www.paper51.com STRSQL= “UPDATE STU_KEY SET SNO=‘00121001’,XM=‘马超’,PWD=‘123’”& 内容来自www.paper51.com
“WHERE SNO=’00121001’” paper51.com SET CMD.ACTIVECONNECTION=CONN http://www.paper51.com
CMD.COMMANDTEXT= STRSQL 内容来自www.paper51.com CMD.EXCUTE paper51.com IF ERR.NUMBER=0 THEN paper51.com Response.write(“记录修改成功!”) http://www.paper51.com ELSE paper51.com Response.write (Err.description) paper51.com Err.clear '错误被手工处理后要记得清除err对象的内容 http://www.paper51.com Response.end() 内容来自论文无忧网 www.paper51.com
END IF copyright paper51.com
%> http://www.paper51.com
|