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

[求助]请问注册信息时的单选框字段在数据库如何体现?

oubeisitan 发布于 2007-11-09 09:36, 1511 次点击
注册信息里性别使用单选框,默认为男
<tr>
<td>性 别</td>
<td><input name="radiobutton" type="radio" value="radiobutton" checked>

<input name="radiobutton" type="radio" value="radiobutton">

</td>
</tr>
请问在数据库内如何定义类型,使用“是/否”?还是数字类型,然后设定1为男,2为女?谢谢

[此贴子已经被作者于2007-11-9 9:36:42编辑过]

14 回复
#2
做人很低调2007-11-09 09:58
那就看楼主你的个人习惯了。

偶个人一般都是使用bit类型
#3
永夜的极光2007-11-09 10:02
我一般是字段名叫“isMale”,然后用“是/否”
#4
oubeisitan2007-11-09 10:10
我输入信息的时候总是说“Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access Driver] 标准表达式中数据类型不匹配”
能不能帮我看下我的代码有没有问题,谢谢。
<%
dim user_id_name,user_password,user_name,user_sex,user_age,user_hospital_name,user_hospital_num
user_id_name=replace(trim(request("user_id_name")),"'","")
user_password=replace(trim(request("user_password")),"'","")
user_name=replace(trim(request("user_name")),"'","")
user_sex=replace(trim(request("user_sex")),"'","")
user_age=replace(trim(request("user_age")),"'","")
user_hospital_name=replace(trim(request("user_hospital_name")),"'","")
user_hospital_num=replace(trim(request("user_hospital_num")),"'","")

Set Conn=Server.CreateObject("ADODB.Connection")
connstr="DBQ="+server.mappath("data/data.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
Conn.Open connstr
%>
<%
set rs=server.createobject("adodb.recordset")
sql="select * from user where user_id_name='"&request("user_id_name")&"'"
rs.open sql,conn,1,1
if rs.recordcount>0 then
response.write"<Script Language='JavaScript'> alert('对不起,您输入的用户名已存在,请返回重新输入!');history.back(-1);</script>"
response.end
end if
%>
<%
user_id_name=replace(trim(request("user_id_name")),"'","")
user_password=replace(trim(request("user_password")),"'","")
user_name=replace(trim(request("user_name")),"'","")
user_sex=replace(trim(request("user_sex")),"'","")
user_age=replace(trim(request("user_age")),"'","")
user_hospital_name=replace(trim(request("user_hospital_name")),"'","")
user_hospital_num=replace(trim(request("user_hospital_num")),"'","")
sql1="insert into [user] (user_id_name,user_password,user_name,user_sex,user_age,user_hospital_name,user_hospital_num) values ('"&user_id_name&"','"&user_password&"','"&user_name&"','"&user_sex&"','"&user_age&"','"&user_hospital_name&"','"&user_hospital_num&"')"
conn.execute sql1
response.write "注册成功!"
response.redirect "login.asp"
conn.close
set conn=nothing
%>

[此贴子已经被作者于2007-11-9 10:13:05编辑过]

#5
oubeisitan2007-11-09 10:11
有时无论输入什么信息都提示用户名已存在,是不是判断重复的语句rs.recordcount&gt;0恒成立了?
#6
永夜的极光2007-11-09 10:40
处理这种错误的办法,一般是用response把sql语句输出,然后放到数据库里面执行,数据库里面的错误提示比较详细

你数据库里面的所有字段都是文本型的吗?
#7
永夜的极光2007-11-09 10:41
以下是引用oubeisitan在2007-11-9 10:11:20的发言:
有时无论输入什么信息都提示用户名已存在,是不是判断重复的语句rs.recordcount>0恒成立了?

你要先确认你输入的信息数据库里面是否存在

#8
oubeisitan2007-11-09 11:08
我的库里只有年龄和编号是数字类型的,而且只有手动添加过一条数据,没有重复的用户名。

只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录
#9
永夜的极光2007-11-09 12:08
文本类型的,用''
数字类型的,直接写数字,不用引号
是/否类型的,用true/false,也不用引号
#10
oubeisitan2007-11-09 13:39
请问是这样吗?初学,很多还不太清楚,谢谢了

sql1="insert into [user] (user_id_name,user_password,user_name,user_sex,user_age,user_hospital_name,user_hospital_num) values ('"&user_id_name&"','"&user_password&"','"&user_name&"',"&true/flase&","&user_age&",'"&user_hospital_name&"',"&user_hospital_num&")"
conn.execute sql1
#11
oubeisitan2007-11-09 13:43

还是说要把"&user_age&",直接写成user_age就可以了,那“是/否”的判断呢

#12
永夜的极光2007-11-09 13:57
"&user_age&",这样就行

true/false是二选一,不是直接这么写,这个值要根据你上一个页面那个表单里面的性别的地方是怎么写的来决定

如果是用两个单选框,name="sex",值分别为true和false(注意:没有双引号),那么,直接写"&request.form("sex")&"就行
#13
oubeisitan2007-11-09 14:20
是不是下面这样写就没有问题了

sql1="insert into [user] (user_id_name,user_password,user_name,user_sex,user_age,user_hospital_name,user_hospital_num) values ('"&user_id_name&"','"&user_password&"','"&user_name&"',"&request.form("user_sex")&","&user_age&",'"&user_hospital_name&"',"&user_hospital_num&")"


<td><input name="user_sex" type="radio" value="true" checked>

<input name="user_sex" type="radio" value="false">

</td>
#14
永夜的极光2007-11-09 15:02
看起来没问题了,你试一下吧
#15
oubeisitan2007-11-09 15:11
恩,我明白了,谢谢版主
1