ADO是ActiveX Data Object的缩写,以下是ASP处理数据用的组件ADO的基本知识。
用ASP结合connection属性创建一个数据库连接
字符串形式连接一个SQL Server库
< %
set conn=server.CreateObject ("adodb.connection")
’创建一个Connection属性的对象conn
conn.Open "driver={SQL Server};server=localhost;UID=username;PWD=password;database=dataname"
’用conn.对象的open方法创建一个对SQL Server数据库的连接
% >
代码中conn的open方法是打开一个连接用的,后边跟一个字符串。driver={SQL Server}的意思是,连接的是一个SQL Server的库,server=localhost中的localhost代表的是本机的IP,数据库服务器IP是多少,这里就改成相应的值,UID和PWD这两个是登录数据库服务器的用户名和密码,最后一个选项是要操作的数据库的名字。
如何读取数据
首先创建一个recordset属性的对象set rs=server.CreateObject ("ADODB.Recordset"),然后用对象rs来打开一个记录集。
rs.open “Select * from tablename where uid=’Coolshow’”,conn,1,1
这是用对象rs的open方法打开一个记录集,后边跟了三个参数用逗号分开。第一个参数是选取数据用的T-SQL语句。第二个是已经创建好连接的 connection属性的对象conn。最后边两个参数用法比较多,如果只读取数据,设置“1,1”就足够了,如果要添加数据,设置“1,2”,如果要改写数据最好设置“2,3”,这两个参数一定要切记。
一、显示数据
< %
set conn=server.CreateObject ("adodb.connection")
conn.Open "driver={SQL Server};server=localhost;UID=username;PWD=password;database=dataname"
set rs=server.CreateObject ("ADODB.Recordset")
rs.open “Select * from tablename where uid=’Coolshow’”,conn,1,1
if rs.eof and rs.bof then ’如果数据指针同时指到记录集的头部和尾部,说明这时候记录集为空
response.write“没有可以显示的数据” ’打印“没有可以显示的数据”
do until rs.EOF ’循环 直到记录集尾部为止
response.write rs(“字段1名”) ’显示一个行的一个字段 网管下载dl.bitscn.com
response.write rs(“字段2名”) ’同上
response.write rs(“字段3名”) ’同上
response.write “
” ’一个行打印完毕,换行
rs.MoveNext ’将数据指针移到下一个行
loop ’循环结束
% >
rs.bof,rs.eof和rs.movenext这三个方法都是跟数据指针有关的,前两个rs.bof和rs.eof用来判断数据指针是否在记录集的开始或者末尾,它们都会返回一个布尔值。rs.movenext跟前两个就大不相同了,它是用来控制数据指针的,让指针移动到下一位,把一个表的多个行显示出来靠它。
二、添加数据
< %
……’代码与前同,略
rs.open “Select * from tablename where uid=’Coolshow’”,conn,1,2 ’这里我们要添加数据,所以把参数改成了1,2
rs.addnew ’告诉rs, 我们要添加一行
rs(“字段1名”)=值1 ’给要添加的行的一个字段赋值
rs(“字段2名”)=值2 ’同上
rs(“字段3名”)=值3 ’同上
rs.update ’通知rs,我们要把这个行写入数据库
% >
这段代码可以把一个新的行写入数据库。这里有以前没见过的两个方法rs.addnew和rs.update,其中rs.addnew是添加一个行时必要的,而rs.update则是写入、修改数据库时需要用的。
三、修改数据跟添加数据差不多,只是在T-SQL语句里,必须只选取一个行。
< %
’……代码与前同,略
rs.open “Select * from tablename where uid=’Coolshow’”,conn,2,3 ’要修改数据,所以把参数改成了2,3
rs(“字段1名”)=值1 ’给要修改的行的一个字段赋一个新值
rs(“字段2名”)=值2 ’同上
rs(“字段3名”)=值3 ’同上
rs.update ’通知rs,我们要把修改好的这个行写入数据库
% >
这段代码跟添加数据的代码比较,只有两个不同点,就是conn后边的参数变了以及没有了addnew,修改跟添加的区别仅在于此。
四、删除数据
< %
……’代码与前同,略
rs.open “Select * from tablename”,conn,2,3
rs.delete ’通知rs,我们要删除当前记录
% >
这里的方法就是rs.delete,就是删除当前记录。