2007-04-26 09:52
三、ASP访问数据库步骤
在ASP中,使用ADO组件访问后台数据库,可通过以下步骤进行:
1. 定义数据源
在WEB服务器上打开“控制面板”,选中“ODBC”,在“系统DSN”下选“添加”,选定你希望的数据库种类、名称、位置等。本文定义“SQL SERVER”,数据源为“HT”,数据库名称为“HTDATA”,脚本语言采用Jscript.
2. 使用ADO组件查询WEB数据库
1) 调用Server.CreateObject方法取得“ADODB.Connection”的实例,再使用Open方法打开数据库:
conn = Server.CreateObject(“ADODB.Connection”)
conn.Open(“HT”)
2) 指定要执行的SQL命令
连接数据库后,可对数据库操作,如查询,修改,删除等,这些都是通过SQL指令来完成的,如要在数据表signaltab中查询代码中含有“X”的记录
sqlStr = “select * from signaltab where code like '%X%'”
rs = conn.Execute(sqlStr)
3) 使用RecordSet属性和方法,并显示结果
为了更精确地跟踪数据,要用RecordSet组件创建包含数据的游标,游标就是储存在内存中的数据。
rs = Server.CreateObject(“ADODB.RecordSet”)
rs.Open(sqlStr,conn,1,A)
注:A=1读取
A=3 新增、修改、删除
在RecordSet组件中,常用的属性和方法有:
rs.Fields.Count: RecordSet对象的字段数。
rs(i)。Name: 第i个字段的名称,i为0至rs.Fields.Count-1
rs(i): 第i个字段的数据,i为0至rs.Fields.Count-1
rs(“字段名”): 指定字段的数据。
rs.Record.Count:游标中的数据记录总数。
rs.EOF: 是否更后一条记录。
rs.MoveFirst: 指向第一条记录。
rs.MoveLast: 指向更后一条记录。
rs.MovePrev: 指向上一条记录。
rs.MoveNext: 指向下一条记录。
rs.GetRows: 将数据放入数组中。
rs.Properties.Count:ADO的ResultSet或Connection的属性个数。
rs.Properties(item)。Name:ADO的ResultSet或Connection的名称。
rs.Properties: ADO的ResultSet或Connection的值。
rs.close(): 关闭连接。
4) 关闭数据库
conn.close()
四、查询WEB数据库举例
下面这段示例程序是访问SQL SERVER数据库的 signaltab表,表中有三个字段:code(代码字段,字符型,3位),class(分类字段,字符型,10位),memo(备注字段,字符型,20位)。程序中数据源DSN:HT、用户名:client、口令:passwd.
屏幕输入页面input.asp
<% @ language=javascript %>
<html>
<head>
<title>请输入查询条件PLEASE INPUT CONDITION</title>
</head>
<form action=shotquery.asp METHOD=“post” target=“_self”>
<input TYPE=“text” size=6 maxlength=3 NAME=signalCode VALUE=“代码”> </font></p>
</center></div><p></p>
<input LANGUAGE=“JavaScript” TYPE=“submit” VALUE=“确认” NAME=“B1”
<input TYPE=“reset” VALUE=“清除”NAME=“B2”>
<input LANGUAGE=“JavaScript” TYPE=“button” NAME=“B3” VALUE=“返回”
ONCLICK=“window.history.back()”>
</font></p>
</center></div>
</form>
</body>
</html>
数据库处理程序shotquery.asp
<!——#include virtual=“/master/lib.inc”——>
<script language=javascript runat=server>
var signalCode=Request.Form(“signalCode”);
dbConn = Server.CreateObject(“ADODB.Connection”);
dbConn.open(“DSN=HT;UID=client;PWD=passwd”);
rs = Server.CreateObject(“ADODB.RecordSet”);
var sqlStr = “select * from signaltab order by code”;
rs.open(sqlStr,dbConn,1);
if(rs.RecordCount < 1) {
Response.write(“<p> 无符合条件记录</p>”);
Response.write(“<p><form> <input type='button' value=' 返回' onclick='window.history.back()' name='b1'></form></p>”);
}
else {
Response.write(“<P><center><B>数据查询结果</B></center></P>”);
Response.write(“<tr><td><b>代码</b></td><td><b>分类</b></td><td><b>备注</b></td>”);
for(var i = 1;i <= rs.Pagesize;i++) {
if(!rs.Eof) {
Response.write(“<td><span style='font-size:9t'>”+rs(“code”)+“</span></td>”);
Response.write(“<td><span style='font-size:9t'>”+rs(“class”)+“</span></td>”);
Response.write(“<td><span style='font-size:9t'>”+rs(“memo”)+“</span></td>”);
Response.write(“</tr>”);
rs.MoveNext();
}
else break;
}
Response.write(“</table></form>”);
rs.close();
dbConn.close();
}
</script>
自考365
2022-01-16
自考365
2022-01-16
自考365
2022-01-16