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

应该是正确的 添加 语句为何不能写入数据库

kira007 发布于 2008-08-01 17:27, 1298 次点击
<!--#include file="../conn.asp"-->
<%
action=Trim(Request.QueryString("save"))

title=Trim(Request.Form("title"))'文本型
classID=Trim(Request.Form("classID"))'数字型
Opens=Trim(Request.Form("open"))'逻辑是否型
show=Trim(Request.Form("show"))'数字型
content=Trim(Request.Form("content"))'备注型

sql="Insert into article (regid,title,content,classno,Open,show) values("&RegId&",'"&title&"','"&content&"',"&classID&","&opens&","&show&")"
conn.execute(sql)

response.write title&"<br>"&classID&"<BR>"&opens&"<br>"&show&"<br>"&content&"<br> 用户ID:"&regid &"<br>"&action
%>
所有值都能获取到,就是不能写入数据库。这是什么缘故?
12 回复
#2
riig2008-08-01 17:40
有什么提示没有?
#3
octillion2008-08-01 19:26
看看sql语句是否正确。
#4
kira0072008-08-01 19:32
Microsoft JET Database Engine 错误 '80040e14'

INSERT INTO 语句的语法错误。

/menber/article_save.asp,行 21
#5
kira0072008-08-01 19:33
sql="Insert into article (regid,title,content,classno,Open,show) values("&RegId&",'"&title&"','"&content&"',"&classID&","&opens&","&show&")"
conn.execute(sql)

这语句哪里错了
#6
madpbpl2008-08-01 19:45
open和show可能是关键字,改成[open]、[show]试试
#7
yms1232008-08-02 09:04
<!--#include file="../conn.asp"-->
<%
action=Trim(Request.QueryString("save"))

title=Trim(Request.Form("title"))'文本型
classID=Trim(Request.Form("classID"))'数字型
Opens=Trim(Request.Form("open"))'逻辑是否型
show=Trim(Request.Form("show"))'数字型
content=Trim(Request.Form("content"))'备注型

Dim rsIns
Set rsIns=Server.CreateObject("ADODB.RecordSet")
rsIns.Open "select * from article",conn,1,3
rsIns.AddNew
rsIns("regid")=RegId
rsIns("title")=title
rsIns("content")=content
rsIns("classno")=CInt(classID)
rsIns("Open")=opens
rsIns("show")=CInt(show)
rsIns.Update
rsIns.Close
Set rsIns=Nothing
response.write title&"<br>"&classID&"<BR>"&opens&"<br>"&show&"<br>"&content&"<br> 用户ID:"&regid &"<br>"&action
%>
#8
孤独冷雨2008-08-02 15:13
照楼上这样做肯定是没有问题的!

在2003server打了一些补丁后,insert into根本没法用.上次就遇到这种情况,本来是好好的,系统升级后就出问题了,最后全改成Addnew就行了.也不知道怎么回事!
#9
hahatuzi20002008-08-02 15:57
sql="Insert into article (regid,title,content,classno,Open,show) values('"&RegId&"','"&title&"','"&content&"','"&classID&"','"&opens&"','"&show&"')"
conn.execute(sql)


帮你改好了,试试看,应该没有问题了吧,有问题再提
#10
kira0072008-08-02 16:35
谢谢各位好友的解答,经过测试,证实并非 SQL语句错误,而是ACCESS的一个BUG ,对于在线编辑器中的 数据 如果含有 日本片假名 就会报错 Microsoft JET Database Engine 错误 '80040e14' 。
我最后把那写 日本假名 全部过滤后,能正常添加数据了。
------------------------------------------------------------------------------------------------------
contents=replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(content,"ガ",""),"ギ ",""),"グ",""),"ゲ",""),"ゴ",""),"ザ ",""),"ジ",""),"ズ",""),"ゼ",""),"ゾ","")," ダ",""),"ヂ",""),"ヅ",""),"デ",""),"ド",""),"バ",""),"ビ",""),"ブ",""),"ベ",""),"ボ",""),"パ",""),"ピ","")," プ",""),"ペ",""),"ポ ",""),"ヴ",""),"'","")
#11
octillion2008-08-02 16:39
[bo][un]kira007[/un] 在 2008-8-2 16:35 的发言:[/bo]

谢谢各位好友的解答,经过测试,证实并非 SQL语句错误,而是ACCESS的一个BUG ,对于在线编辑器中的 数据 如果含有 日本片假名 就会报错 Microsoft JET Database Engine 错误 '80040e14' 。
我最后把那写 日本假名 全 ...

原来是这样
日本字就是麻烦。
#12
hmhz2008-08-02 16:39
啊哦,有你这样过滤字符的吗?
#13
hmhz2008-08-02 17:09
帮你写个过滤吧
程序代码:

<%
content="中ギ华グ人ゾ民ヅ共ブ和パ国"
KStr="ガ,ギ,グ,ゲ,ゴ,ザ,ジ,ズ,ゼ,ゾ,ダ,ヂ,ヅ,デ,ド,バ,ビ,ブ,ベ,ボ,パ,ピ,プ,ペ,ポ,ヴ,'"
Str=split(KStr,",")
For i=0 To Ubound(Str)
content=replace(content,Str(i),"")
Next
%>
<%=content%>
1