2014-11-21 8 views
1

간단한 등록 양식을 작성했습니다. SQL Server 2000을 사용하고 있으며 4 열 모두 정확히 동일하게 설정되었습니다. nvarchar(50) nulls가 큰 소리로 표시됩니다. 나는 IIS7가 wwwroot에에서 웹 사이트를 호스팅있어 (난 그냥 DB에 정보를 얻으려고, 이것은 개발 기계)마지막 양식 필드가 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

은 정확히 어떻게 가지고 있는지 코드에서 dept를 사용하는 것입니다. 그렇다면 간단한 코딩 오류입니다.

이전 양식의 이름을 사용하려고 시도하는 동안 다음 페이지에서 변수에 대해 동일한 이름을 사용했기 때문에 사용자 이름, 비밀번호 및 이메일이 모두 작동합니다. 부서 만 예외입니다.

VBScript는 대소 문자를 구분하지 않으므로 이전 페이지에서 이름을 얻고 있다고 생각할 수도 있지만 실제로는 해당 페이지에서 선언 한 변수를 호출합니다. dept 필드가 Department라는 변수에 캐스트되기 때문에, dept를 SQL Insert에 추가하려고하면 변수 dept가 존재하지 않기 때문에 dept가 작동하지 않습니다.

+0

고맙습니다. 나는이 모든 것에 매우 익숙하다. 아마 나는 코드를 12 번 검토하여 어떤 식 으로든 부서를 잘못 입력하지는 않았는지 확인하고 어떤 문제도 찾을 수 없었다. 당신은 머리에 못을 박았습니다. 나는 변수가 이전 페이지에서 왔다고 생각했습니다. VB에서 콘솔에 변수를 인쇄 할 수있는 방법이 있습니까? – dm8021122

+0

<%= %>을 사용하십시오. response.write의 줄임말입니다. – KHeaney