数据不能用ASP写入到ACCESS。没提示出错,但数据库表中是空的并没数据写入。

大漠孤沙 2003-07-29 12:34:21
如题。初学ASP,请多指教。

建了一个 test.mdb,有一个表,customer,包含以下字段:

CompanyName,CName,City,Tel.


前台代码如下: add.htm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Add New Record</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body>
<p align="center"><font size=5>添加新的数据库记录:</font></p>

<form method="post" action="http://localhost/adddatabase.asp">
<p></p>
<p>Company:
<input type="text" name="companyname" size="20"></P>
<P>Name:<input type="text" name="Cname" size="20"></P>
<p>City:<input type="text" name="city" size="20"></p>
<p>email:<input type="tel" name="tel" size="20"></p>
<br>
<input type="submit" Value="Submit" name="submit">
<input type="reset" Value="Reset" name="reset">
</form>

</body>
</html>



后台: adddatabase.asp

<%
dim conn
dim connstr

CompanyName=Request("CompanyName")
CName=Request("CName")
City=Request("City")
Tel=Request("Tel")

on error resume next

connstr="DBQ"+server.MapPath("test.mdb")+";DefaultDir=;Driver={Microsoft Access Driver(*.mdb)};"

Set conn=Server.CreateObject("ADODB.Connection")

conn.Open connstr

set rs=ServerCreateObject("ADODB.Recordset")

rs.Open "customer",conn,adOpenDynamic,3

rs.AddNew
rs("CompanyName")=CompanyName
rs("CName")=CName
rs("City")=City
rs("Tel")=Tel

rs.Update

Response.Write"<html><body><font size=10>你的数据已添加到数据库了~~~"

Response.Write"</font></body></html>"

%>

<html>
<head>
<title>add data</title>
</head>
<body>

</body>
</html>
...全文
307 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
prf8 2003-07-29
  • 打赏
  • 举报
回复
使用如下代码:自己看吧,呵呵。。。

ShenBaoShiJian=session("paidanshijian")
strDBDSN = "DSN=Gongdan_list;uid=userdb;pwd=userdb"
' 数据库查询的SQL语法
strSQL = "insert into Gongdan (gongdanbianhao,shenbaoshijian,gongdanzhuti,guzhangleixing,paidanbumen,paidanren,lianxifangshi,shoulibumen,jinjichengdu,guzhangmiaoshu,guzhangchubuchulijieguo,guzhangchulijianyi,gongdanzhuangtai) values( '" & GongDanBianHao & "','" & ShenBaoShiJian & "','" & GongDanZhuTi & "','" & GuZhangLeiXing & "','" & PaiDanBuMen & "','" & PaiDanRen & "','" & LianXiFangShi & "','" & ShouLiBuMen & "','" & JinJiChengDu & "','" & GuZhangMiaoShu & "','" & GuZhangChuBuChuLiJieGuo & "','" & GuZhangChuLiJianYi & "','" & GongDanZhuangTai & "')"
' 建立数据库连接的对象
Set objDBConn = Server.CreateObject("ADODB.Connection")
' 打开数据库连接
objDBConn.Open strDBDSN
' 执行SQL的数据库查询
Set objRS = objDBConn.Execute(strSQL)
' 关闭数据库连接
objDBConn.Close
Set objDBConn = Nothing
prf8 2003-07-29
  • 打赏
  • 举报
回复
CompanyName=Request("CompanyName")改为:
CompanyName=Request。Form("CompanyName")
大漠孤沙 2003-07-29
  • 打赏
  • 举报
回复
connstr="DBQ"+server.MapPath("test.mdb")+";DefaultDir=;Driver={Microsoft Access Driver(*.mdb)};"

改为:

connstr="DBQ="+server.MapPath("test.mdb")+";DefaultDir=;Driver={Microsoft Access Driver (*.mdb)};"

16行可以了。

还有:18行出错。
set rs=ServerCreateObject("ADODB.Recordset")
大漠孤沙 2003-07-29
  • 打赏
  • 举报
回复
to: Primer2002cn(宠辱不惊)

~~~是这句出错了:conn.Open connstr


HTTP 500.100 - 内部服务器错误 - ASP 错误
Internet 信息服务

--------------------------------------------------------------------------------

技术信息(适用于支持人员)

错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
/adddatabase.asp, 第 16 行


浏览器类型:
Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)

页:
POST 54 bytes to /adddatabase.asp

POST 数据:
CompanyName=gds&Cname=ds&City=fds&Tel=sf&submit=Submit

时间:
2003年7月29日, 12:35:01

xiaobird1 2003-07-29
  • 打赏
  • 举报
回复
action="adddatabase.asp" 使用物理路径。
Primer2002cn 2003-07-29
  • 打赏
  • 举报
回复
把on error resume next这句注释掉看提示什么
xiaobird1 2003-07-29
  • 打赏
  • 举报
回复
action="http://localhost/adddatabase.asp"???
conner 2003-07-29
  • 打赏
  • 举报
回复
Set conn = Server.CreateObject("ADODB.Connection")
DBPath = Server.MapPath("test.mdb")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
大漠孤沙 2003-07-29
  • 打赏
  • 举报
回复
另外, prf8(风筝)朋友说的:

CompanyName=Request.Form("CompanyName")

也可以正常操作。
大漠孤沙 2003-07-29
  • 打赏
  • 举报
回复
Sorry,是:

connstr="DBQ="+server.MapPath("test.mdb")+";DefaultDir=;Driver={Microsoft Access Driver (*.mdb)};"
大漠孤沙 2003-07-29
  • 打赏
  • 举报
回复
to: xiaobird1(小鸟儿)
Primer2002cn(宠辱不惊)
prf8(风筝) ( )

谢谢三位朋友的关注,此问题已解决。

调试后发现以上代码有三点错误:

16行:connstr="DBQ"+server.MapPath("test.mdb")+";DefaultDir=;Driver={Microsoft Access Driver(*.mdb)};"

1。“DBQ”内少了一个“=”;
2。Driver和(*.mdb)};"之间少一个空格;

正确如下:

connstr="DBQ+"+server.MapPath("test.mdb")+";DefaultDir=;Driver={Microsoft Access Driver (*.mdb)};"



18行:set rs=ServerCreateObject("ADODB.Recordset")

3。ServerCreateObject中少了一个"."

正确如下:

set rs=Server.CreateObject("ADODB.Recordset")




28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧