注册 登录
编程论坛 ASP技术论坛

请帮忙看一下这段asp代码有无问题!?用于在asp中存储数据到access数据库中。在执行中。ie显示。http500错误。

devarup 发布于 2010-03-21 22:41, 1985 次点击

<%
Option Explicit

Dim cn
Dim cmd
Dim rs
Dim member, descr, address,image

member = Request("member")
descr = Request("descr")
address =Request("address")
image = Request("image")

Set cn = Server.CreateObject("ADODB.Connection")
cn.ConnectionString = "db1"
cn.Open

Set cmd = Server.CreateObject(")
cmd.ActiveConnection = cn
= 1
= "Insert into member (member, descr,address,image) values('" & member & "','" & descr & "','" & address & "','" & Image & "')"

Set rs = cmd.Execute

Response.Write "writing=success"
cn.Close
%>
用于在asp中存储数据到access数据库中。

在执行中。ie显示。http500错误。
15 回复
#2
aspic2010-03-22 08:37
Cn.Execute("Insert into member (member, descr,address,image) values('" & member & "','" & descr & "','" & address & "','" & Image & "')")
#3
cnfarer2010-03-22 08:49
连接错误的可能性更大!
#4
devarup2010-03-23 01:08
更改那一行。IE错误提示显示。
技术信息(用于支持人员)

错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] INSERT INTO 语句包含下列未知的字段名: 'descr'。确定键入的名称是正确的, 然后重试。
/access_asp_data/asp_save_data.asp, 第 21 行


浏览器类型:
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727)

网页:
GET /access_asp_data/asp_save_data.asp
#5
cnfarer2010-03-23 07:55
INSERT INTO 语句包含下列未知的字段名: 'descr'。确定键入的名称是正确的, 然后重试。
检查下面这一句中:字段名有没有错误!
= "Insert into member (member, descr,address,image) values('" & member & "','" & descr & "','" & address & "','" & Image & "')"
#6
chenguoxing5172010-03-23 13:42
看下表member,看下个字段名,看是否各字段名写对了
#7
devarup2010-03-23 23:54
查检了member表。该字段。名为desc。并非descr。
将下面代码中的两个descr中的r去掉。
= "Insert into member (member, descr,address,image) values('" & member & "','" & descr & "','" & address & "','" & Image & "')"
再通过ie测试。ie报错为:
技术信息(用于支持人员)

错误类型:
Microsoft VBScript 运行时错误 (0x800A01F4)
变量未定义: 'desc'
/access_asp_data/asp_save_data.asp, 第 21 行


浏览器类型:
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727)

网页:
GET /access_asp_data/asp_save_data.asp

#8
cnfarer2010-03-24 07:28
回复 7楼 devarup
只改前面一个,后面一个不用改!
#9
devarup2010-03-24 12:47
哦。已经改回来了。重新测试的结果如下。
技术信息(用于支持人员)

错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] INSERT INTO 语句的语法错误。
/access_asp_data/asp_save_data.asp, 第 21 行


浏览器类型:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727)

网页:
GET /access_asp_data/asp_save_data.asp
#10
apull2010-03-24 13:11
检测线字段类型,数字类型等不需要加引号。在就是坚持下某些字段是否允许空值。
#11
devarup2010-03-24 14:25
只有本站会员才能查看附件,请 登录


我对access。也不是很熟悉。不太能看懂你(apull)写的。可否帮忙看一下。附件为那个数据库文件。
#12
aspic2010-03-24 14:59
保留字
#13
devarup2010-03-24 15:38
确实可能就是保留字。把数据库里的desc字段名改了。就可以了。但是奇怪。我不懂的是。为何下段这段代码是读取输入的。使用的也是desc字段。为何就可以呢。!?
<%
    Option Explicit
     
    Dim cn
    Dim cmd
    Dim rs
    Dim cont
     
    Set cn = Server.CreateObject("ADODB.Connection")
    cn.ConnectionString = "db1"
    cn.Open
     
    Set cmd = Server.CreateObject(")
    cmd.ActiveConnection = cn
    = 1
    = "SELECT member, desc, address,image FROM member"
     
    Set rs = cmd.Execute
    cont=0
     
    Do Until rs.EOF
        Response.Write "member"&cont&"="& rs("member") & "&" &"desc"&cont&"="& rs("desc") &"&" &"address"&cont&"="& rs("address") & "&" &"image"&cont&"="& rs("image")& "&"
        cont = cont+1
        rs.MoveNext
    Loop
     
    Response.Write "count="&cont
     
    rs.Close
    cn.Close
    %>


[ 本帖最后由 devarup 于 2010-3-24 15:39 编辑 ]
#14
devarup2010-03-24 19:22
哦。还是不行。用这段代码是会出错的。
Cn.Execute("Insert into member (member, descr,address,image) values('" & member & "','" & descr & "','" & address & "','" & Image & "')")

我用的还是之前的代码。将表中的desc字段。改为了like。代码中的desc。都改为了like。asp触本输出sucess。但是实际调用运行的时候输入表中的数据为各字段名称。:   & member &      & like &      & address &      & Image &

#15
apull2010-03-25 10:23
最好指定连接字符串
cn.ConnectionString="PROVIDER=Microsoft.jet.OLEDB.4.0;Data Source=" & server.MapPath("../db1.mdb")  'mappah里的根据情况改一下
cn.open

= "Insert into member (member, descr,address,image) values('" & member & "','" & descr & "','" & address & "','" & Image & "')"
数据库里没有字段descr,是desc,因此要改成
= "Insert into member (member, desc,address,image) values('" & member & "','" & descr & "','" & address & "','" & Image & "')"
数据库定义的字段都不是必填字段,因此可以为空,不过字段大小都是50,也就是最多存放50个字符。



#16
devarup2010-03-25 14:37
按你所说的操作后。IE报错的给出的报告如下。

错误类型:
Microsoft JET Database Engine (0x80040E14)
INSERT INTO 语句的语法错误。
/access_asp_data/asp_save_data.asp, 第 23 行


浏览器类型:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727)

网页:
GET /access_asp_data/asp_save_data.asp
1