设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 136|回复: 9
打印 上一主题 下一主题

[求助]asp中写入数据库出错

[复制链接]
跳转到指定楼层
1#
发表于 2010-1-8 05:19:01 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
<%

set conn=server.createObject("ADODB.Connection")
dbpath=server.mappath("../mdba/news.asp")
conn.open "driver={Microsoft Access Driver (*.mdb)};dbq="&dbpath
set rs=server.createobject("adodb.recordset")


conn.execute insert into news(classfication,title,accessory,imagesname,key1,key2,reporter,lookfrom,newsdate,content)values("a","b","c","j","d","e","f","g",h,"i")

%>

这段代码中问题出在conn.execute insert intonews(classfication,title,accessory,imagesname,key1,key2,reporter,lookfrom,newsdate,content)values("a","b","c","j","d","e","f","g",h,"i")这一句代码中,老是出错,说语句未结束.这其中a,b,c,d,e,f,g,j是一个字符型变量,h是时间变量,i是注释型变量.这几个变量的值都是从另一个数据库中得来.
请高手们帮帮忙,看一下是怎么回事,小弟是一个新手.最好能把正确的代码写出来.先谢谢了!!!
10#
发表于 2010-1-8 05:19:28 | 只看该作者
set rs=server.createobject("adodb.recordset")
rs.open "select * from news",conn,1,3
rs.addnews
rs("classfication")=trim(request.form("classfication"))
..
..
....
rs.Update
rs.close
set rs=nothing
这样写比较好
回复 支持 反对

使用道具 举报

9#
发表于 2010-1-8 05:19:25 | 只看该作者
("a","b","c","j","d","e","f","g",h,"i")应该改成('"&amp;a&amp;"','"&amp;b&amp;"'),我在做这一步的时候也经常错,注意你的书写格式.
回复 支持 反对

使用道具 举报

8#
发表于 2010-1-8 05:19:22 | 只看该作者
细心一点好不好?
strsql="insert into news(classfication,title,accessory,imagesname,key1,key2,reporter,lookfrom,newsdate,content)values('"&a&"','"&b"'&,'"&c&"','"&j&"','"&d&"','"&e&"','"&f&"','"&g&"',"&h&",'"&i&"')"

红色部分 改成 '"&b&"'
回复 支持 反对

使用道具 举报

7#
发表于 2010-1-8 05:19:19 | 只看该作者
ASP学多久了?
conn.execute insert intonews(classfication,title,accessory,imagesname,key1,key2,reporter,lookfrom,newsdate,content)values('"&a&"','"&b"'&,'"&c&"','"&j&"','"&d&"','"&e&"','"&f&"','"&g&"',"&h&",'"&i&"')
回复 支持 反对

使用道具 举报

6#
发表于 2010-1-8 05:19:16 | 只看该作者
trim去掉空格,防止出错
回复 支持 反对

使用道具 举报

5#
发表于 2010-1-8 05:19:13 | 只看该作者
谢了,楼上的几位兄弟,我先去试一试.小弟刚学ASP不久,入门都还谈不上,今后一定虚心向各位学习.
回复 支持 反对

使用道具 举报

4#
发表于 2010-1-8 05:19:10 | 只看该作者
为什么要加个trim??

防止注入么??
回复 支持 反对

使用道具 举报

3#
发表于 2010-1-8 05:19:07 | 只看该作者
不好意思,小弟刚才试了一下,好象还是不行.

1.用conn.Executeinsert into news classfication,title,accessory,imagesname,key1,key2,reporter,lookfrom,newsdate,content)
values('"&a&"','"&b"'&,'"&c&"','"&j&"','"&d&"','"&e&"','"&f&"','"&g&"',"&h&",'"&i&"')时,"&a&"','"&b"'&,'"&c&"','"&j&"','"&d&"','"&e&"','"&f&"','"&g&"',"&h&",'"&i&"')全成了注释,可能是前面有一个"'"的原因.

然后我改用第二种方法:
strsql="insert into news(classfication,title,accessory,imagesname,key1,key2,reporter,lookfrom,newsdate,content)values('"&a&"','"&b"'&,'"&c&"','"&j&"','"&d&"','"&e&"','"&f&"','"&g&"',"&h&",'"&i&"')"
Set rs=conn.Execute(strSql)
结果还是一样,说语法未完.


这是怎么回事呢?请恕小弟愚钝!!
回复 支持 反对

使用道具 举报

2#
发表于 2010-1-8 05:19:04 | 只看该作者
('"&a&"','"&b"'&,'"&c&"','"&j&"','"&d&"','"&e&"','"&f&"','"&g&"',"&h&",'"&i&"')
这里面需要根据字段类型修改,如果是数字型的就不能 '"&a&"' 了,而应该去掉两头的“'”
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-19 14:32 , Processed in 0.107945 second(s), 9 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表