我有一个简单的注册表单,我正在尝试将它放在一起。我正在使用SQL Server 2000,并且所有4列都设置完全相同:nvarchar(50)
大声显示空值。我有从UDProor托管网站的IIS7(我只是想把信息放到数据库中,这是一台开发机器)
表格代码:
<html>
<head>
<title>My First ASP Page</Title>
</head>
<body>
<form action="Register_User.asp" method="POST">
<table style="width:15%">
<tr>
<td>User Name:</td>
<td><input type="text" name="userName" size="20" /></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="password" size="20" /></td>
</tr>
<tr>
<td>ReEnter Password:</td>
<td><input type="password" name="rePass" size="20" /></td>
</tr>
<tr>
<td>Email:</td>
<td><input type="text" name ="email" size="20" /></td>
</tr>
<tr>
<td>Department:</td>
<td><input type="text" name="dept" size="20" /></td>
</tr>
<td><input type="submit" value="Submit" name="submitButton" /></td>
</table>
</form>
</body>
</html>
ASP代码:
<html>
<head>
<title>Register User</Title>
</head>
<body bgcolor="white" text="black">
<%
If Request.Form("submitButton") <> "" Then
Username = Request.Form("userName")
Password = Request.Form("password")
Email = Request.Form("email")
Department = Request.Form("dept")
'- add code to validate
Set conn = Server.Createobject("ADODB.Connection")
conn.Open "Driver={SQL Server};Server=ACCTSERVER1\pcsnsql01;Uid=***;Pwd=***;DATABASE=DavidTest"
sql = "INSERT INTO Users (Username,Password,Email,Department) VALUES "
sql = sql & "('" & userName & "','" & password & "','" & email & "','" & dept & "')"
conn.Execute sql
conn.close
Set conn = Nothing
End If
Response.Redirect "Main_Page.asp"
%>
</body>
</html>
用户名,密码和电子邮件字段填充没有问题,但部门字段未显示在任何列中。我没有收到任何错误。有什么想法吗?
答案 0 :(得分:1)
是在代码中使用dept的具体方式。如果是这样,这是一个简单的编码错误。
用户名,密码和电子邮件都可以正常工作,因为当您尝试使用上一个表单中的名称时,您在下一页使用了相同的变量名称。部门是唯一的例外。
VBScript不区分大小写,所以当您可能认为从前一页获取名称时,实际上是在调用您在该页面上声明的变量。因为您的dept字段被强制转换为名为Department的变量,当您尝试将dept添加到SQL Insert时,它不起作用,因为变量dept不存在。