在此上下文中不允许使用 'False'。此处只允许使用常量、表达式或变量。不允许使用列名。 这个问题怎么解决?

时间:2022-06-11 07:44:12
在向数据库添加数据时出现这样的错误,
Microsoft OLE DB Provider for SQL Server 错误 '80040e14' 

在此上下文中不允许使用 'False'。此处只允许使用常量、表达式或变量。不允许使用列名。 

/asp163/Admin_Advertisement.asp,行 296 

程序代码如下
 292行 
         if IsFlash="" then IsFlash=0
 292行
if IsSelected="" then IsSelected=0
 293行
if IsSelected="True" then conn.execute "Update Advertisement set IsSelected=0 where IsSelected=1"
 294行
sql="Insert Into Advertisement (SiteName,SiteUrl,SiteIntro,ImgUrl,ImgWidth,ImgHeight,IsFlash,IsSelected) values ('" & SiteName & "','" & SiteUrl & "','" & SiteIntro & "','" & ImgUrl  & "'," & ImgWidth & "," & ImgHeight & "," & IsFlash & "," & IsSelected & " )"
 296行
conn.execute sql

5 个解决方案

#1


在296行之前加上

response.write sql
response.end

看看实际的sql是什么。怀疑你定义的IsFlash和IsSelected都是布尔型,
直接赋值0或者1,是OK的,但是你形成一个SQL语句往数据库里插,
就有可能出现 True 或者 False这样的字。
SQL Server是不允许插入True或者False这样的字的,
即便是bit型的字段,也需要用0或者1插入。

#2


把conn.execute sql执行的sql打印出来。
可能是语句有问题。

#3


Insert Into Advertisement (SiteName,SiteUrl,SiteIntro,ImgUrl,ImgWidth,ImgHeight,IsFlash,IsSelected) values ('c','http://www.jaya.cn','fgh','fgh',480,60,False,True )
这是response.write sql执行后的语句
但是语句怎么写才正确呢

#4


292行 
         if IsFlash<>"True" then
             IsFlash=0
         else
             IsFlash=1
         end if
 292行
if IsSelected<>"True" then
            IsSelected=0
         else
            IsSelected=1
         end if
 293行
if IsSelected=1 then conn.execute "Update Advertisement set IsSelected=0 where IsSelected=1"

#5


谢谢楼上的哥,问题已经解决.
忽略了程序!

#1


在296行之前加上

response.write sql
response.end

看看实际的sql是什么。怀疑你定义的IsFlash和IsSelected都是布尔型,
直接赋值0或者1,是OK的,但是你形成一个SQL语句往数据库里插,
就有可能出现 True 或者 False这样的字。
SQL Server是不允许插入True或者False这样的字的,
即便是bit型的字段,也需要用0或者1插入。

#2


把conn.execute sql执行的sql打印出来。
可能是语句有问题。

#3


Insert Into Advertisement (SiteName,SiteUrl,SiteIntro,ImgUrl,ImgWidth,ImgHeight,IsFlash,IsSelected) values ('c','http://www.jaya.cn','fgh','fgh',480,60,False,True )
这是response.write sql执行后的语句
但是语句怎么写才正确呢

#4


292行 
         if IsFlash<>"True" then
             IsFlash=0
         else
             IsFlash=1
         end if
 292行
if IsSelected<>"True" then
            IsSelected=0
         else
            IsSelected=1
         end if
 293行
if IsSelected=1 then conn.execute "Update Advertisement set IsSelected=0 where IsSelected=1"

#5


谢谢楼上的哥,问题已经解决.
忽略了程序!