2014-11-21 1 views
1

У меня есть простая форма регистрации, которую я пытаюсь собрать. Я использую SQL Server 2000, и все 4 столбца настроены точно так же: nvarchar(50) с нулями вслух. У меня есть IIS7 хостинг веб-сайт от Wwwroot (я просто пытаюсь получить информацию в БД, и это машина разработки)Последнее поле формы не вставляет в SQL DB ошибки

Код формы:

<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> 

Поля заполнения, пароля и электронной почты заполняются без проблем, но поле Департамента не отображается ни в одном столбце. Я не получаю никаких ошибок. Есть предположения?

ответ

1

- это использование отдела в вашем коде именно так, как у вас есть. если это так, то это простая ошибка кодирования.

имя пользователя, пароль и электронная почта работают, потому что, пока вы пытаетесь использовать имена из предыдущей формы, вы использовали те же имена для своих переменных на следующей странице. Единственным исключением является отдел.

VBScript не чувствителен к регистру, поэтому, хотя вы можете подумать, что получаете имена на предыдущей странице, вы фактически вызываете переменные, которые вы указали на этой странице. потому что поле вашего дельта приводится к переменной named Department, когда вы пытаетесь добавить dept к своей SQL-вставке, она не работает, потому что деление переменной не существует.

+0

спасибо. Я очень новичок в этом, я, наверное, несколько раз просмотрел код, проверяя, чтобы я не ошибался в департаменте и не мог найти никаких проблем. Вы ударили ноготь по голове, я предположил, что переменные появились на предыдущей странице. Есть ли способ распечатать переменные на консоли в vb? – dm8021122

+0

использование <%= %> это стенограмма для response.write. – KHeaney