asp数据库学习笔记
编程语言的功能
一、编程语言不外乎就这几种功能
1.读取
2.添加
3.修改
4.删除
5.查询
6.统计
首先我们谈谈数据库:
ASP一般使用ACCESS 和SQL 数据库
初学者最好先使用ACCESS 数据库,装个OFFIEC 就已经自带ACCESS 数据库了
二、ASP读取数据:
<%
Set rs=Server.CreateObject("ADODB.Recordset")
rs.open "select * from 表名order by id desc",conn,1,1 'order by用来排序id为排序字段,desc为倒序,asc为顺序,1,1为只读,1,3为可操作
do while not rs.eof '循环开始
response.write rs("abc") '显示数据
rs.movenext '循环下一条数据
loop
rs.close '关闭rs记录
set rs=nothing '清除rs记录集
%>
(do while loop 和以下是相同的功能while wend
while not rs.eof
response.write rs("xm")
response.write("
")
response.write rs("bm")
rs.movenext
wend
rs.close
set rs=nothing )
(Set rs=Server.CreateObject("ADODB.Recordset" 是建立一个数据集,前面应该先定义此数据集。dim rs as adodb.recordset,然后就可以用
set rs=server.CreateObject("adodb.recordset")
来建立一个数据集的实例,当然此时数据集中是没有数据的
rs.open ......
来打开一个记录集
rs.append或者rs.insert来添加记录
rs.edit来修改记录
对于添加或修改的记录,可以用
rs.fields("字段名")=xxx
来进行赋值
rs.update
把更改过的值更新回数据库)
三、ASP添加新数据:
第一种添加方式代码:
<%
Set rs=Server.CreateObject("ADODB.Recordset")
rs.open "select * from 表名",conn,1,3 '这里添加新数据就不需要排序了,1,3上面我们已经说了,是可对数据库操作修改的意思
rs.addnew '开始新数据
rs("字段1")="123456" '将数据添加到字段1
rs("字段2")="123456" '同上()统统都是将后面的赋值给前面的
rs.update '开始向数据库写入
rs.close '关闭rs记录
set rs=nothing '清除rs记录集
%>
这种添加方式适合ACCESS和SQL数据库的任何方式连接
下面这个添加语句只适合ACCESS的第②种连接方式,同时也适合SQL数据库任何方式连接
第二种添加方式代码:
<%
conn.execute "insert into 表名(字段1,字段2) values('123456','123456')" '两个括号中要一一对应,多个内容添加用逗号隔开
%>
上面这段添加语句唯一不支持ACCESS第①种数据库连接方式
四、ASP修改数据:
ASP修改数据多数用在查询指定的数据然后去修改那条数据
第一种修改方式代码:
<%
Set rs=Server.CreateObject("ADODB.Recordset")
rs.open "select * from 表名where id=10",conn,1,3 'where为查询开始,查询条件为id等于10的那条数据注意此处的where
rs("字段1")="123456" '无论字段1中是什么值,我们都把它改成123456这个值
rs("字段2")="123456" '同上
rs.update '开始向数据库写入
rs.close '关闭rs记录
set rs=nothing '清除rs记录集
%>
<%
conn.execute "update 表名set 字段1='123456',字段2='123456' where id=10" '多个内容修改用逗号隔开
%>
上面这段修改代码和上面的添加一样唯一不支持ACCESS第①种数据库连接方式
五、ASP删除数据:
删除数据也用到查询,如果没有查询,那就是将整个表中的所有内容全部删除了,如果你只需要删除其中一条,那就必须使用查询条件
<%
conn.execute "delete 表名where id=10" '查询到id值等于10的那条数据并且删除
%>
如果是ACCESS数据库就要加上from,例如:
<%
conn.execute "delete from 表名where id=10"
%>
如果你的数据库连接使用的是ACCESS第②种方式或者使用的是SQL数据,那么添加,修改,删除用起来就很简单了,像下面这样
添加:conn.execute "insert into 表名(字段1,字段2) values('123456','123456')"
修改:conn.execute "update 表名set 字段1='123456',字段2='123456' where id=10"
删除:conn.execute "delete 表名where id=10"
记住,在读取,添加,修改,删除,这四个功能之中只有添加不能带有查询条件,其他三个根据自己的需要可以带查询条件
查询条件中的读取,修改,和删除功能
一、查询条件可以多个条件
例如:conn.execute "delete from表名where 字段1='123456' and 字段2='123456' and id=10" 之间用and隔开,and前后一定要空格
意思是这三个条件必须同时满足才能查询出你想要的结果
二、查询条件可以使用or(或者的意思)
例如:conn.execute "delete 表名where 字段1='123456' or 字段2='123456' or id=10" 之间用or隔开,or前后一定要空格
意思是只要查询的条件满足其中之一就能查询出你想要的结果
三、查询条件还可以使用and和or同时使用
例如:conn.execute "delete 表名where (字段1='123456' or 字段2='123456') and id=10"
意思是只要查询条件满足字段1 或者字段2 中的一条,并且id等于10的条件,注意:括号要括起来
统计使用函数sum,recordcount
统计价格:sum
<%
Set rs=Server.CreateObject("ADODB.Recordset")
rs.open "select sum(价格字段) as price from 表名order by id desc",conn,1,1 'as就是将统计出来的结果赋值给临时变量price
response.write rs("price") '显示统计出来的总价格
rs.close
set rs=nothing
%>
统计总数量:recordcount
<%
Set rs=Server.CreateObject("ADODB.Recordset")
rs.open "select * from 表名order by id desc",conn,1,1
response.write rs.recordcount '显示统计出来的总的记录数目
rs.close
set rs=nothing
%>
下面我们来说说字段为空的判断:
字段为空有两种,
一种是默认值设置为字符的比如SQL数据库字段默认值可以填写N''
另一种默认值为空的,字段显示内容为null 的
平时我们查询判断字段为空的把两种空都写上
查询所有为空的字段:
<%
Set rs=Server.CreateObject("ADODB.Recordset")
rs.open "Select * from 表名where abc=’’or abc is null",conn,1,1
%>
查询所有不为空的字段:
<%
Set rs=Server.CreateObject("ADODB.Recordset")
rs.open "Select * from 表名where abc<>'' or is abc not null",conn,1,1 %>
那么在读取字段的时候判断是否为空的:
<%
if isnull(rs(字段名))=true or rs(字段名)="" then
'true表示为空
else
'false表示不为空
end if
if rs(字段名) is null or rs(字段名)="" then
'表示为空
else
'表示不为空
end if
if not rs(字段名) isnull or rs(字段名)<>"" then
'表示不为空
else
'表示为空
end if
%>
<1>基本框架
<%
语句
……
%>
<2>定义变量dim语句
<%
dim a,b
a=10
b=”ok!”
%>
注意:定义的变量可以是数值型,也可以是字符或者其他类型的
<3>简单的控制流程语句
1. If 条件1 then
语句1
elseif 条件2 then
语句2
else
语句3
endif
2.while 条件
语句
wend
3.for count=1 to n step m
语句1
exit for
语句2
next
二.ASP数据库简单操作教程
<1>.数据库连接(用来单独编制连接文件conn.asp)
<%
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="& Server.MapPath("wx.mdb") %>
(用来连接wx.mdb数据库)
<2>显示数据库记录
原理:将数据库中的记录一一显示到客户端浏览器,依次读出数据库中的每一条记录
如果是从头到尾:用循环并判断指针是否到末使用: not rs.eof
如果是从尾到头:用循环并判断指针是否到开始使用:not rs.bof
(包含conn.asp用来打开wx.mdb数据库)
<%
set rs=server.CreateObject("adodb.recordset") (建立recordset对象)
sqlstr="select * from zc" ---->(zc为数据库中的一个数据表,即你要显示的数据所存放的数据表)
rs.open sqlstr,conn,1,3 ---->(表示打开数据库的方式)
rs.movefirst ---->(将指针移到第一条记录)
while not rs.eof ---->(判断指针是否到末尾)
response.write(rs("name")) ---->(显示数据表zc中的xm字段)
rs.movenext ---->(将指针移动到下一条记录)
wend ---->(循环结束)
rs.close
conn.close 这几句是用来关闭数据库
set rs=nothing
set conn=nothing
%>
其中response对象是服务器向客户端浏览器发送的信息.
<3>增加数据库记录
增加数据库记录用到rs.addnew,rs.update两个函数
(包含conn.asp用来打开wx.mdb数据库)
<%
set rs=server.CreateObject("adodb.recordset") (建立recordset对象)
sqlstr="select * from message" ---->(message为数据库中的一个数据表,即你要显示的数据所存放的数据表)
rs.open sqlstr,conn,1,3 ---->(表示打开数据库的方式)
rs.addnew 新增加一条记录
rs("name")="xx" 将xx的值传给name字段
rs.update 刷新数据库
rs.close
conn.close 这几句是用来关闭数据库
set rs=nothing
set conn=nothing
%>
<4>删除一条记录
删除数据库记录主要用到rs.delete,rs.update
(包含conn.asp用来打开bbs\db1\目录下的user.mdb数据库) <%
dim name
name="xx"
set rs=server.CreateObject("adodb.recordset") ‘(建立recordset对象)
sqlstr="select * from message" ‘(message为数据库中的一个数据表,即你要显示的数据所存放的数据表)
rs.open sqlstr,conn,1,3 ‘ (表示打开数据库的方式)
while not rs.eof
if rs ("name")=name then
rs.delete
rs.update ‘查询数据表中的name字段的值是否等于变量name的值"xx",如果符合就执行删除,
else ‘否则继续查询,直到指针到末尾为止
rs.movenext
emd if
wend
rs.close
conn.close ‘这几句是用来关闭数据库
set rs=nothing
set conn=nothing
%>
<5>关于数据库的查询
(a) 查询字段为字符型
<%
dim user,pass,qq,mail,message
user=request.Form("user")
pass=request.Form("pass")
qq=request.Form("qq")
mail=request.Form("mail")
message=request.Form("message")
if trim(user)&"x"="x" or trim(pass)&"x"="x" then (检测user值和pass值是否为空,可以检测到空格)
response.write("注册信息不能为空")
else
set rs=server.CreateObject("adodb.recordset")
sqlstr="select * from user where user=‘‘‘‘"&user&"‘‘‘‘" (查询user数据表中的user字段其中user字段为字符型)
rs.open sqlstr,conn,1,3
if rs.eof then
rs.addnew
rs("user")=user
rs("pass")=pass
rs("qq")=qq
rs("mail")=mail
rs("message")=message
rs.update
rs.close
conn.close
set rs=nothing
set conn=nothing
response.write("注册成功")
end if
rs.close
conn.close
set rs=nothing
set conn=nothing
response.write("注册重名")
%>
(b)查询字段为数字型
<%
dim num
num=request.Form("num")
set rs=server.CreateObject("adodb.recordset")
sqlstr="select * from message where id="&num (查询message数据表中id字段的值是否与num
相等,其中id为数字型)
rs.open sqlstr,conn,1,3
if not rs.eof then
rs.delete
rs.update
rs.close
conn.close
set rs=nothing
set conn=nothing
response.write("删除成功")
end if
rs.close
conn.close
set rs=nothing
set conn=nothing
response.write("删除失败")
%>
<6>几个简单的asp对象的讲解
response对象:服务器端向客户端发送的信息对象,包括直接发送信息给浏览器,重新定向URL,或设置cookie值
request对象:客户端向服务器提出的请求
session对象:作为一个全局变量,在整个站点都生效
server对象:提供对服务器上方法和属性的访问
(a) response对象的一般使用方法
比如:
<%
resposne.write("hello, welcome to asp!")
%>
在客户端浏览器就会看到hello, welcome to asp! 这一段文字
<%
response.Redirect("https://www.360docs.net/doc/064324088.html,")
%>
如果执行这一段,则浏览器就会自动连接到“搜狐”的网址
关于response对象的用法还有很多,大家可以研究研究
request对象的一般使用方法
比如客户端向服务器提出的请求就是通过request对象来传递的
列如:你在申请邮箱的所填写的个人信息就是通过该对象来将
你所填写的信息传递给服务器的
比如:这是一段表单的代码,这是提供给客户填写信息的,填写完了按
“提交”传递给request.asp文件处理后再存入服务器数据库
那么request.asp该如何将其中的信息读入,在写入数据库,在这里就要用到request对象了,下面我们就来分析request.asp的写法
<%
dim name,password (定义user和password两个变量)
name=request.form(“user”) (将表单中的user信息传给变量name)
password=request.form(“pass”) (将表单中的pass信息传给变量password)
%>
通过以上的几句代码就将表单中的数据读进来了,剩下要做的就是将
信息写入数据库了。
1.获得系统时间:
<%=now()%>
2.取得来访用的IP:
<%=request.serverVariables("remote_host")%>
3.获得系统,浏览器版本:
window.document.write("版本:"+navigator.appName+navigator.appVersion+" browser.")
4.去除IE混动条:
5.进入网站,跳出广告:
window.open(''https://www.360docs.net/doc/064324088.html,'','''',''height=200,width=300,top=0,left=30'');
// -->
程序代码6.随机数:
<%randomize%>
<%=(int(rnd()*n)+1)%>
N为可改变数
7.向上混动代码:
8.自动关闭网页:
本页10秒后自动关闭,请注意刷新页面
9.随机背景音乐:
<%randomize%>
可以修改数字,限制调用个数,我这里是60个.
10.自动刷新本页面:
else
curtime=cursec+"秒后重刷本页!"
window.status=curtime
setTimeout("beginrefresh()",1000)
}
}
window.onload=beginrefresh
file://-->
<%
dim conn
set conn = server.createobject("adodb.connection")
conn.connectionstring="Provider = Microsoft.Jet.OLEDB.4.0;Data Source="&server.mapPath("wx.mdb")
conn.open
%>
<%
Set rs=Server.CreateObject("ADODB.Recordset")
rs.open "select * from zc ",conn,1,1
while not rs.eof
response.write rs("xm")
response.write("
")
response.write rs("bm")
rs.movenext
wend
rs.close
set rs=nothing
%>
用ASP连接数据库的几种方法
用ASP连接数据库的几种方法 用ASP连接DBF、DBC、MDB、Excel、SQL Server型数据库的方法: 一、ASP的对象存取数据库方法 在ASP中,用来存取数据库的对象统称ADO(Active Data Objects),主要含有三种对象:Connection、Recordset 、Command Connection:负责打开或连接数据 Recordset:负责存取数据表 Command:负责对数据库执行行动查询命令 二、连接各数据库的驱动程序 连接各数据库可以使用驱动程序,也可以使用数据源,不过我建议大家使用驱动程序,因为使用驱动程序非常方便、简单,而使用数据源比较麻烦。 驱动程序适用数据库类型 Microsoft.Jet.OLEDB.4.0 Mdb Microsoft Access Driver Access Microsoft dBase Driver Dbase Microsoft Excel Driver Excel Microsoft Visual FoxPro Driver Dbc SQLOLEDB.1 SQL srver7.0 而我们在一般情况下使用Access的数据库比较多,在这里我建议大家连接Access数据库使用下面的方法: dim conn set conn = server.createobject("adodb.connection") conn.open = "provider=microsoft.jet.oledb.4.0;" & "data source = " & server.mappath("../db/bbs.mdb") 其中../db/bbs.mdb是你的数据库存放的相对路径!如果你的数据库和ASP文件在同一目录下,你只要这样写就可以了:
ASP中数据库调用时常见错误的现象和解决
下面是虚机维护中,经常碰到的一些ASP程序中的数据库调用的错误,现收集整理如下:ADODB.Recordset 错误'800a0bb9' 变量或者类型不正确,或者不在可以接受的范围之内,要不就是与其他数据冲突。 产生错误可能原因: 1.这个错误多出现在类似语句处:“rs.Open sql,conn,1,1”,原因是数据库连接conn对象未打开。 ―――――――――――――――――――――――――――――――――――― 不能打开注册表关键字(8007000e) Microsoft OLE DB Provider for ODBC Drivers 错误'8007000e' [Microsoft] [ODBC Microsoft Access Driver]常见错误不能打开注册表关键字'Temporary (volatile) Jet DSN for process 0x11b4 Thread 0x1a4c DBC 0x9d34354 Jet'。 产生错误可能原因: 1.打开数据库时写法不对,标准的ACCESS数据库调用写法: "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("db.MDB") 2. 正在上传数据库文件。―――――――――――――――――――――――――――――――――――― 参数不足,期待是1 (80040e10) Microsoft OLE DB Provider for ODBC Drivers 错误'80040e10' [Microsoft][ODBC Microsoft Access Driver] 参数不足,期待是1。 产生错误可能原因: 1.打开数据的SQL查询语句WHERE后面条件子句有问题,一般是缺少逻辑比较符号或者是字段名不正确。 ―――――――――――――――――――――――――――――――――――― 一般性网络错误。请检查网络文档(80004005)
ASP连接Access或SQLServer数据库的终极代码
ASP连接Access或SQLServer数据库的终极代码 作者:佚名来源:本站整理发布时间:2010-01-11 10:26:29 搞了这么久的ASP,希望本篇能帮助一些初学者。 <% On Error Resume Next Dim Data_base Data_base = 0 '1为MSSQLServer2000 其它为Access Set Conn=Server.CreateObject("Adodb.Connection")
IF Data_base=1 Then '------------------------------------------------------------------------------------- Dim dbconn,dbip,dbdns,dbname,dbuid,dbpwd dbconn = 1 '链接方式1为OLEDB链接2为驱动链接3为DNS链接dbip = "(local)" '数据库所在的IP地址,如果是本地数据库则为:"(local)" dbdns = "数据源DNS名称" '数据库DNS名 dbname = "MSOW" '数据库名称 dbuid = "sa" '数据库用户名 dbpwd = "********" '数据库密码 '------------------------------------------------------------------------------------- Select CASE dbconn
Case 1 Conn.Open "Provider=SQLOLEDB;User ;Password="&dbpwd&";Initial Catalog="&dbname&";Data Source="&dbip&";" Case 2 Conn.open "DRIVER={SQL Server};SERVER="&dbip&";UID="&dbuid&";PWD="&dbpwd&";DATABASE="&dbname&"" Case 3 Conn.open "DSN="&dbdns&";UID="&dbuid&";PWD="&dbpwd&";DATABASE="&dbname&"" End Select Else '-------------------------------------------------------------------------------------
asp数据库成excel文件代码
asp数据库数据生成excel文件:
<% if Request("act") = "" then Response.Write "生成EXCEL文件实例" else dim conn,strconn strconn="driver={SQL Server};server=wen;uid=sa;pwd=;database=DB_Test" set conn=server.CreateObject("adodb.connection") conn.Open strconn dim rs,sql,filename,fs,myfile,x Set fs = server.CreateObject("scripting.filesystemobject") '--假设你想让生成的EXCEL文件做如下的存放 filename = Server.MapPath("online.xls") '--如果原来的EXCEL文件存在的话就删除 if fs.FileExists(filename) then fs.DeleteFile(filename) end if '--创建EXCEL文件 set myfile = fs.CreateTextFile(filename,true) Set rs = Server.CreateObject("ADODB.Recordset") '--从数据库中把你想放到EXCEL中的数据读出来 sql = "select * from Tb_Execl order by id desc" rs.Open sql,conn,1,1 if rs.EOF and rs.BOF then else dim strLine,responsestr strLine="" For each x in rs.fields strLine = strLine & https://www.360docs.net/doc/064324088.html, & chr(9) Next '--将表的列名先写入EXCEL myfile.writeline strLine Do while Not rs.EOF strLine=""
用ASP连接读写ACCESS数据库实例
(一)数据库的选择: 有许多的数据库你可以选择,SQL SERVER、ACCESS(*.mdb)、EXCEL(*.xls)、FOXPRO(*.dbf)甚至普通的文本文件(*.txt)都可以达到存储数据的功能。那么到底选择什么数据库最合适呢?其中SQL SERVER是服务器级的,足以应付每天上万次的访问量。对于非服务器级的数据库建议使用ACCESS97。 因为: (1)只要安装了PWS或IIS4肯定有ACCESS的ODBC驱动,即你的系统肯定支持ACCESS数据库的存取。 (2)ACCESS支持的SQL指令非常齐全。 (3)ACCESS ODBC驱动程序的效率非常高。虽然它不是服务器级的数据库,但是作为中小型企业内部网的数据库支持还是绰绰有余的。 (4)ACCESS97在OFFICE97中就有,非常方便得到和使用。 本文就以ACCESS数据库为准介绍基于WEB的数据库存取方法。 (二)例子:我们建立一个“客户”数据库,需要保存如下的客户资料:客户名称、联络人姓名、所在城市、电话号码。 (1)首先建立ACCESS数据库customer.mdb(今后有用的)。 建立如下字段:客户名称、联络人姓名、所在城市、电话号码、客户编号、时间。将表保存为" 客户"(今后有用的,===>看看图)。注意:建立字段时多作了2个(客户编号、时间),因为在今后排序时要用到它们。建议今后做数据库时最好都加上这2项,不会没用的。此外,在保存表时ACCESS 会询问是否建立一个住关键字,我们不需要它所以不必建立。还有:时间字段的"默认值"设成"now()",即去系统当时的时间。同时将索引项设成"有(允许重复)",含义:WEB上极有可能同时存取数据,所以允许重复,索引设成"有"可以加快排序速度。===>看看图 (2)建立递交表单add.htm: 源代码如下:
添加数据库记录