标题:select值插入问题
只看楼主
craft001wen
Rank: 2
等 级:论坛游民
帖 子:242
专家分:62
注 册:2006-5-4
 问题点数:0 回复次数:11 
select值插入问题

以下代码,我在提交时,没有提示出错,但是插入的select中的“resenduser”到表里,后发现是空值,大家帮帮忙!
<% if request("editsignfile")="转发" then
userid=request.form("userid")
resenduser=request.form("resenduser")
set conn=opendb("oabusy","conn","accessdsn")
set rs1=server.createobject("adodb.recordset")
sql = "update signfile set "
sql = sql & "resenduser=" & SqlStr(resenduser) & "where userid='"&userid&"'"
conn.Execute sql
response.write("转发成功!")
end if
%>
<form action="sendfile.asp" method="post">
<table align="center">
<tr>
<td>
<select name="resenduser">
<option selected>请选择转发人</option>
<% set conn=opendb("oabusy","conn","accessdsn")
set rsname=server.createobject("adodb.recordset")
sql="select distinct name from userinf"
rsname.open sql,conn,1,1
do while not rsname.eof and not rsname.bof %>
<option value="<%=rsname("name")%>" ><%=rsname("name")%></option>
<% rsname.movenext
loop %>
</select>
</td>
</tr>
</table>
</form>

搜索更多相关主题的帖子: select 
2006-06-02 15:37
hangxj
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2045
专家分:0
注 册:2006-4-10
得分:0 
以下是引用craft001wen在2006-6-2 15:37:00的发言:

以下代码,我在提交时,没有提示出错,但是插入的select中的“resenduser”到表里,后发现是空值,大家帮帮忙!
<% if request("editsignfile")="转发" then
userid=request.form("userid")
resenduser=request.form("resenduser")
set conn=opendb("oabusy","conn","accessdsn")
set rs1=server.createobject("adodb.recordset")
sql = "update signfile set "
sql = sql & "resenduser=" & SqlStr(resenduser) & "where userid='"&userid&"'" SqlStr(resenduser) 是哪来的?还有就是where与前面没有空格
conn.Execute sql
response.write("转发成功!")
end if
%>
<form action="sendfile.asp" method="post">
<table align="center">
<tr>
<td>
<select name="resenduser">
<option selected>请选择转发人</option>
<% set conn=opendb("oabusy","conn","accessdsn")
set rsname=server.createobject("adodb.recordset")
sql="select distinct name from userinf"
rsname.open sql,conn,1,1
do while not rsname.eof and not rsname.bof %>
<option value="<%=rsname("name")%>" ><%=rsname("name")%></option>
<% rsname.movenext
loop %>
</select>
</td>
</tr>
</table>
</form>


http://www./
2006-06-02 15:45
craft001wen
Rank: 2
等 级:论坛游民
帖 子:242
专家分:62
注 册:2006-5-4
得分:0 
以下是引用craft001wen在2006-6-2 15:37:00的发言:

以下代码,我在提交时,没有提示出错,但是插入的select中的“resenduser”到表里,后发现是空值,大家帮帮忙!
<% if request("editsignfile")="转发" then
userid=request.form("userid")
resenduser=request.form("resenduser")讲求的值在这!
set conn=opendb("oabusy","conn","accessdsn")
set rs1=server.createobject("adodb.recordset")
sql = "update signfile set "
sql = sql & "resenduser=" & SqlStr(resenduser) & "where userid='"&userid&"'"这个空格可能是复制时出错,在代码里是有空格的
conn.Execute sql
response.write("转发成功!")
end if
%>
<form action="sendfile.asp" method="post">
<table align="center">
<tr>
<td>
<select name="resenduser">
<option selected>请选择转发人</option>
<% set conn=opendb("oabusy","conn","accessdsn")
set rsname=server.createobject("adodb.recordset")
sql="select distinct name from userinf"
rsname.open sql,conn,1,1
do while not rsname.eof and not rsname.bof %>
<option value="<%=rsname("name")%>" ><%=rsname("name")%></option>
<% rsname.movenext
loop %>
</select>
</td>
</tr>
</table>
</form>


2006-06-02 16:11
hangxj
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2045
专家分:0
注 册:2006-4-10
得分:0 
SqlStr(resenduser) 这个怎么来的?

http://www./
2006-06-02 16:13
craft001wen
Rank: 2
等 级:论坛游民
帖 子:242
专家分:62
注 册:2006-5-4
得分:0 
resenduser=" & SqlStr(resenduser)

相当于:rs("rsenduser")=resenduser

2006-06-02 16:21
hangxj
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2045
专家分:0
注 册:2006-4-10
得分:0 
有点晕~~~
那你把resenduser=" & SqlStr(resenduser) & "

改成resenduser="&resenduser&"
你应该是要把表格中传过来的这个值写到数据库中吧?

http://www./
2006-06-02 16:25
yj123
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2005-11-18
得分:0 

如果 SqlStr(resenduser) 反回的是空值的话,而在数据库里也没设此字段允许为空的话,就会发生上面的错误,你可以先判断一下它是否为空,或是在数库中设为允许为空,试试呀


2006-06-02 16:33
islet
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:89
帖 子:6548
专家分:0
注 册:2005-1-28
得分:0 
有没有SqlStr(str)这个function
2006-06-02 16:55
craft001wen
Rank: 2
等 级:论坛游民
帖 子:242
专家分:62
注 册:2006-5-4
得分:0 
以下是引用hangxj在2006-6-2 16:25:00的发言:
有点晕~~~
那你把resenduser=" & SqlStr(resenduser) & "

改成resenduser="&resenduser&"
你应该是要把表格中传过来的这个值写到数据库中吧?

resenduser是新增加的字段值,不能直接赋值


2006-06-02 17:19
craft001wen
Rank: 2
等 级:论坛游民
帖 子:242
专家分:62
注 册:2006-5-4
得分:0 
以下是引用yj123在2006-6-2 16:33:00的发言:

如果 SqlStr(resenduser) 反回的是空值的话,而在数据库里也没设此字段允许为空的话,就会发生上面的错误,你可以先判断一下它是否为空,或是在数库中设为允许为空,试试呀

数据库中是允许为空的
resenduser varchar 50 允许为空


2006-06-02 17:24



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-69299-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015079 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved