asp实现添加数据源码(asp控件添加数据库)
本文目录一览:
asp连接access数据库怎么实现的
通过ASP与ACCESS数据库建立连接(附源码)(1)
前言:
如何通过ASP与数据库建立连接是一个非常现实的问题,我尽量写得非常详细。相信看了这篇文章相信您已经能够写出类似的比较简单和实用的程序了。
(一)数据库的选择:
有许多的数据库你可以选择,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:
源代码如下:
html
head
title添加数据库记录/title
meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/head
body bgcolor="#FFFFFF"
p align="center"font size="5"添加数据库记录/font/p
form method="post" action="adddatabase.asp"
div align="center"
table width="46%" border="0"
tr
td width="28%"
div align="right"公司名称: /div
/td
td width="72%"
input type="text" name="CompanyName"
/td
/tr
tr
td width="28%"
div align="right"联络人姓名: /div
/td
td width="72%"
input type="text" name="CName"
/td
/tr
tr
td width="28%"
div align="right"所在城市: /div
/td
td width="72%"
input type="text" name="City"
/td
/tr
tr
td width="28%"
div align="right"电话号码:/div
/td
td width="72%"
input type="text" name="Tel"
/td
/tr
tr
td width="28%"
div align="right" /div
/td
td width="72%"
input type="submit" name="Submit" value="Submit"
input type="reset" name="reset" value="Reset"
/td
/tr
/table
/div
/form
/body
/html
这与普通的HTML没有任何区别,关键部分已经用黄色标记了。递交方法用POST,递交后处理的程序是adddatabase.asp(下一步就重点讨论它)。还有就是给每一个项目取一个名字(NAME,后面有用)。
通过ASP与ACCESS数据库建立连接(附源码)(2)
浏览选项: 大中小 颜色 默认 灰度 橄榄色 绿色 蓝色 褐色 红色
(三)关键部分:建立与数据库的联系并将表单中收集到的信息添加到ACCESS数据库中。
ASP代码放在〈%和%之间。
%
CompanyName = Request("CompanyName")
CName = Request("CName")
City = Request("City")
Tel = Request("Tel")
以上,首先取得表单中填写的数据,使用ASP的Request对象非常容易可以实现数据的收集。双引号中的就是上一步建立的各个项目的名字(NAME)。所以今后为每个项目起名字是个好习惯,尽管有时候并不一定用得到。这样取得的数据就保存在等号坐侧的变量中了。
If CompanyName = "" Or CName = "" Or City = "" Or Tel = "" Then
'Response.Write "htmlbodycenterfont size=5请将资料填写完整。/font/center/body/html"
Response.Redirect "error.htm"
Response.End
End If
这里是检测各个项目是否输入了东西,如果为空则不往下继续执行,显示错误信息。注意:你可以使用两种方法。我都列出了。方法一:使用Response.Write方法写一个出错页面,类似于javascripts的document.write写法,只是ASP使用Response.write罢了。方法二:使用Response.Redirect方法导向出错页面error.htm。我在方法一的代码前加上单引号表示注释。(ASP中表示注释用单引号')。
set dbconnection=Server.CREATEOBJECT("ADODB.CONNECTION")
DBPath = Server.MapPath("customer.mdb")
dbconnection.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" DBPath
(1)建立Connection对象:dbconnection,建立一个连接(Connection)是数据库存取的开始。我们使用ASP的内建对象方法Server.Createobject建立与数据库的连接。ADODB是ASP的数据库存取组件,不必担心只要有ASP就有它了,是内置的。
(2)使用dbconnection.open方法打开数据库customer.mdb。driver参数语法: driver={Microsoft Access Driver (*.mdb)}必须这么写。告诉系统使用ACCESS ODBC驱动处理。dbq参数用来指定打开的数据库文件,它必须是完整的路径。例如"c:inetpubwwwrootcustomercustomer.mdb",我们使用Server.MapPath的方法取得数据库的完整路径。
Set rs = Server.CreateObject("ADODB.Recordset")
建立Recordset对象rs。Connection仅仅是建立了与数据库间的连接,要存取数据还应该再建立Recordset对象。
rs.Open "客户", dbconnection, adOpenDynamic, 3
打开数据库中的表"客户"(客户是表名)。 语法:
rs.open 数据表名或SQL指令,已经建立的Connection对象(这里是dbconnection), 锁定类型
rs.AddNew
rs("公司名称") = CompanyName
rs("联络人姓名") = CName
rs("所在城市") = City
rs("电话号码") = Tel
rs.Update
用AddNew向数据库请求添加数据。最后用Update写入。注意:等号右侧的变量保存着用Request取得的表单数据。双引号内的就是数据库的字段,应该与数据库的一致啊。否则会出错的。这样变量内的数据就写入了数据库对应的字段内了。
Response.Write "htmlbodycenterfont size=5祝贺,您的数据已经添加进数据库了!p"
Response.Write "a href='viewdatabase.asp'查看数据/a"
Response.Write "/font/center/body/html"
写入成功后显示祝贺信息并建立查看数据库记录的连接。
%
html
head
title/title
/head
body
/body
/html
通过ASP与ACCESS数据库建立连接(附源码)(3)
浏览选项: 大中小 颜色 默认 灰度 橄榄色 绿色 蓝色 褐色 红色
(三)显示/查看数据库记录:
%
set dbconnection=Server.CREATEOBJECT("ADODB.CONNECTION")
DBPath = Server.MapPath("customer.mdb")
dbconnection.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" DBPath
建立与数据库的连接,与上同。
SQL="select * from 客户 Order By 时间 DESC"
SET CustomerList=dbconnection.EXECUTE(SQL)
%
建立SQL查询语句,表示从"客户"表中查询所有记录,Order By 时间 DESC表示"按时间降序排序,"这样最后添加的信息再最上面显示。下面一句执行SQL查询并将结果返回给Recordset对象CustomerList。
html
body
FONT SIZE="5"center数据库记录/center/FONT
CENTER
TABLE BORDER=1
tr
td编号/td
td公司名称/td
td联络人姓名/td
td所在城市/td
td电话号码/td
/tr
% DO WHILE NOT CustomerList.EOF %
检测记录是否到了最后一条。EOF表示End of File。
TR
TD% =CustomerList("客户编号") %/TD
TD% =CustomerList("公司名称") %/TD
TD% =CustomerList("联络人姓名") %/TD
TD% =CustomerList("所在城市") %/TD
TD% =CustomerList("电话号码") %/TD
/TR
% =CustomerList("客户编号") %可以说是Response.Write方法的简写。将"客户编号"字段内的数据写入TD标签间。
% CustomerList.movenext
loop
%
如果还没有到最后一条则指针移动到下一条。用Do While ... Loop循环逐一取得所有的记录。
/TABLE
/CENTER
center
input type="button" onclick="javascript:location.href='add.htm'" value="添加数据"
/center
/BODY
/HTML
缺陷:仅仅实现了最基本的功能。先不说其它功能,仅就数据的添加和查看功能来看,比较完美的还应该加入“分页功能”。否则数据大到一定程度显示全部数据基本上是不可能的。
本期至此全部完毕。
关于用ASP制作资料录入的数据源代码
如果你加分的话[我可以帮你写代码哈]
%
set conn=Server.CreateObject("ADODB.CONNECTION")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;data Source=" Server.MapPath("data.mdb")
conn.open connstr
%
%
set rs=server.createobject("adodb.recordset")
sql="select * from [信息]" '数据库的表名为信息
rs.open sql,conn,1,3 '执行SQL 并打开数据集
rs.addnew '用记录集新添加一条数据
C_Name=request("Name") '请求表单的变量,定义变量为c,这里接收C变理
rs("Name")=C_Name '将请求到的表单值传向记录集中代表Name字段的名称
'别的内容。如学号之类的地方同上
rs.update '更新一下数据库中的数据。
rs.close '关闭记录集
set rs=nothing '销毁记录集
conn.close '关闭数据库连接
set rs=nothing '销毁数据库连接
%
上面是添加数据
下面是显示数据
%
set conn=server.createobject("adodb.connection")
cserver.mappath("data.mdb") '这个就是数据库
conn.open connstr
%
table width="100%" border="0" cellspacing="0" cellpadding="0"
tr
td scope="col"div align="center"姓名/div/td
td scope="col"div align="center"学号/div/td
td scope="col"div align="center"工作地点/div/td
td scope="col"div align="center"工作行业/div/td
td scope="col"div align="center"手机/div/td
td scope="col"div align="center"QQ/div/td
td scope="col"div align="center"阴历生日/div/td
td scope="col"div align="center"阳历生日/div/td
td scope="col"div align="center"个人网址等/div/td
td scope="col"div align="center"/div/td
/tr
%
set rs=server.createobject("adodb.recordset")
sql="select * from [信息]" '数据库的表名为信息
rs.open sql,conn,1,1 '执行SQL 并打开数据集
do while not rs.eof
%
tr
%
response.write("td" rs("Name") "/td") '这儿显示的名字
'下面分别显示别的信息。我就不写了。你自己添上去就行了
%
/tr
%
rs.movenext
loop
rs.close '关闭记录集
set rs=nothing '销毁记录集
conn.close '关闭数据库连接
set rs=nothing '销毁数据库连接
%
/table
asp如何实现批量添加数据
你想要的是,一次提交后,同时把那三条数据一起写入到数据库里吧
这个是可以实现的,思路如下:
前台,用js或jquery把要提交的数据获取到,然后用ajax发送到后台,
比如,你要提交的数据是:
李,标题1,内容1;王,标题2,内容2 ;
这些数据,每一条与每一条之间,要设置好间隔符号,第一条的每一项之间也要设置好间隔符
2.后台,处理通过ajax获取到的数据,
把获取到的数据,拆分成一条条的记录,得到一个数组,然后开始循环添加数据。