100分求解一个微不足道的小问题(关于ASP,SQL).大家快来抢分啊!!!! (100分)

  • 主题发起人 主题发起人 zhem8
  • 开始时间 开始时间
Z

zhem8

Unregistered / Unconfirmed
GUEST, unregistred user!
我在写ASP程序遇到一个问题:怎样给一个变量赋NLL值?有给变量赋NLL值的函数吗?

我在ASP中写了下面一句话:update users set name='"&name&"', sex='"&sex&"' , pronvince='"&pronvince&"' where username='"&oldusername&"'
其中 pronvince字段在数据库中不允许为空但可以为NULL值(因为有外键约束),所以当pronvince为空时 我想给它赋一个NULL值,但我这样写出错:
if province="" then province=null
然后在执行上面的SQL语句但是出错!!!!

我不想把"NULL"直接写在SQL语句中,因为这样要拆分SQL语句实在太烦了!!
我想达到这样的效果: update user set name='小王',sex='女',pronvince=null where username='老李'

 
if province="" then province='null'
就可以了
 
TO: twos
我试过了,这样不行的!!
 
把单引号去掉
 
不用加null
直接写if province="" then province=''

 
"update users set name='"&name&"' ,sex='"&sex&"' ,pronvince="&pronvince&"
where username='"&oldusername&"'"
变量pronvince根据需要,若pronvince有数据如aa则pronvince="'aa'",若无数据
pronvince="null"

 
to :dreamliu2001
province不能为空,但可以为NULL(数据表设计时已这样定义)

to: w12345678
我想把NULL值赋给province 因为我只想写一句SQL语句
我的意思大至如下:
if province="" then province=null (这样写似乎不对,我只想给province赋NULL值)
conn.Execute "update users set name='"&name&"' ,sex='"&sex&"' ,pronvince="&pronvince&"
where username='"&oldusername&"'"

可是这样写的话执行的结果却是"update user set name='小王',sex='女',pronvince= where username='老李'"
这样的语句显然会出错!!
我的目的就是在执行update语句之前判断province字段是否为空,如果为空就把NULL值赋给province(prvince也可能出现不为空的情况)
我不想把"NULL"直接写在SQL语句中,因为这样要拆分SQL语句实在太烦了!!

 
照你所描述的意思,province不可以为空,但是可以为NULL这样的字符串。
想来你的想法是在province没有内容的时候,将字符串NULL赋值给province,
此时你所要做的就是province="null"
 
to :armyjiang
我就是这个想法,但当province="null"时,SQL语句执行后返回的结果是:
update user set name='小王',sex='女',pronvince= where username='老李'
显然是错误的.
我想要得到的结果是:update user set name='小王',sex='女',pronvince=null  where username='老李'
 
由于我用的是oracle,对SQL方面的东东不是很熟悉;且无法进行测试,但是问题应该
可以解决:
1 在数据库的操作环境下尝试写出一个满足你要求的SQL语句(应该和你写的不同,你的写
法还是将空值赋给了pronvince,与字段的定义相冲突);
2 在对数据库操作之前将update语句的内容进行显示;
3 比较两条语句的不同之处,尝试修改ASP,使第二步中形成的语句和第一步中的相同,
这样就可以满足你的要求了。
 
if province="" then
province="null"
else
province = "'" & Replace( province, "'", "''" ) & "'"
end if

conn.Execute "update users set name='"&name&"' ,sex='"&sex&"' ,pronvince="&pronvince&" where username='"&oldusername&"'"

保证没错,我用过N遍了。
 
接受答案了.
 
后退
顶部