在下面的例子中引用了ADODB.Recordset对象,在引用时,需要用到一些常量,要先找到C:\Program Files\Common Files\System\ado\adojavas.inc,然后把这个文件复制贴成一个新的文件,修改文件名为: adojavas.js,注意扩展名为js,表示是javascript代码。
然后,要把文件中的 <% 和 %> 符号去掉,这个符号是用vbscript开发ASP时才需要的。
具体的数据:
create database Test;
go
use test;
go
if object_id('tb') is not null
drop table tb;
go
CREATE TABLE TB(ID INT,NAME NVARCHAR(20),SCORE NUMERIC(10,2));
INSERT INTO TB(ID,NAME,SCORE)
VALUES(1,'语文',100),
(2,'数学',80),
(3,'英语',900),
(4,'政治',65),
(5,'物理',65),
(6,'化学',85),
(7,'生物',55),
(8,'地理',100)
基本的流程是:
(1)页面加载的时候,会调用onload函数,连接数据库,在关闭时,调用onunload函数,关闭数据库。
(2)在表格的框中,输入ID,点击查找,就可以找到数据。
点击新增,会把表格中输入的数据新增到tb表中。
点击修改,就会用表格中的数据修改原始数据。
点击删除,就会把找到的数据删除。
代码:
<!doctype html>
<html>
<head>
<meta charset="gb2312">
<title>增删改查</title>
<script src="C:\Program Files\Common Files\System\ado\adojavas.js"></script>
<script language="javascript">
//全局变量
var db,rs;
var strConn="Provider=SQLOLEDB.1;Data Source=WIN-6;User ID=sa;Password=yupeigu;Initial Catalog=test";
var isOpen=false;
//打开数据库
function openDatabase()
{
db = new ActiveXObject("ADODB.Connection");
db.Open(strConn);
rs = new ActiveXObject("ADODB.Recordset");
}
//关闭数据库
function closeDatabase()
{
if(isOpen)
{
rs.Close();
}
db.Close();
}
//查询数据
function queryRecord()
{
if(isOpen)
rs.Close();
var sql = "select id,name,score from tb where id ='" + dbForm.id.value + "'";
rs.Open(sql,db,adOpenStatic,adLockOptimistic,adCmdText);
isOpen = true;
if (!rs.EOF)
{
dbForm.id.value = rs("id");
dbForm.name.value = rs("name");
dbForm.score.value = rs("score");
spShow.innerHTML = "<font color=red>查询到记录!</font>";
}
else
{
spShow.innerHTML = "<font color=red>没有找到记录!</font>";
//rs.Close();
//isOpen = false;
}
}
//新增数据
function insertRecord()
{
if (dbForm.id.value != "")
{
if(isOpen)
rs.Close();
var sql = "select id,name,score from tb where id ='" + dbForm.id.value + "'";
rs.Open(sql,db,adOpenStatic,adLockOptimistic,adCmdText);
isOpen = true;
if(rs.EOF)
{
rs.AddNew();
rs("id") = dbForm.id.value;
rs("name") = dbForm.name.value;
rs("score") = dbForm.score.value;
rs.Update();
spShow.innerHTML = "<font color=blue>新增数据成功!</font>";
}
else
{
spShow.innerHTML = "<font color=red>要新增的数据已经存在,请重新输入!</font>";
}
}
else
spShow.innerHTML = "<font color=red>没有输入ID,请输入ID!</font>";
}
//更新数据
function updateRecord()
{
if(dbForm.id.value != "")
{
if(isOpen) rs.Close();
var sql = "select * from tb where id='" + dbForm.id.value +"'";
rs.Open(sql,db,adOpenStatic,adLockOptimistic,adCmdText);
isOpen = true;
if(!rs.EOF)
{
rs("id") = dbForm.id.value;
rs("name") = dbForm.name.value;
rs("score") = dbForm.score.value;
rs.Update();
spShow.innerHTML = "<font color=blue>更新数据成功!</font>";
}
else
spShow.innerHTML = "<font color=red>要更新的数据不存在,请重新输入数据!</font>";
}
else
spShow.innerHTML = "<font color=blue>没有输入ID,请输入ID!</font>";
}
//删除数据
function deleteRecord()
{
if(isOpen)
{
if(!rs.EOF)
{
rs.Delete();
rs.Update();
rs.Close();
isOpen = false;
spShow.innerHTML = "<font color=blue>删除数据成功!</font>";
}
else
{
spShow.innerHTML = "<font color=red>没有找到要删除的数据!</font>";
}
}
else
spShow.innerHTML = "<font color=red>请先查询要删除的记录,再进行删除操作!</font>";
}
</script>
</head>
<body οnlοad="openDatabase()" οnunlοad="closeDatabase()">
<h1>查询、增加、更新、删除数据表记录</h1>
<hr>
<p><span id="spShow"></span><p>
<hr>
<form name="dbForm">
<table border=1>
<tr>
<td>ID:</td>
<td><input type="text" name="id" size=20></td>
</tr>
<tr>
<td>Name</td>
<td><input type="text" name="name" size=20></td>
</tr>
<tr>
<td>Score</td>
<td><input type="text" name="score" size=20></td>
</tr>
</table>
<input type="button" οnclick="queryRecord()" value="查询记录">
<input type="button" οnclick="insertRecord()" value="增加记录">
<input type="button" οnclick="updateRecord()" value="更新记录">
<input type="button" οnclick="deleteRecord()" value="删除记录">
</form>
</body>
</html>