사용자 이름이 이미 DB에 있는지 확인하는 함수를 만들었습니다. Sql-Injection을 피하기 위해 sql-parameterd와 함께 SqlCommand
을 사용하고 있습니다. 실행하려면 기존 프로젝트 전체가 빌드되어 있기 때문에 클래스 SqlAccess
을 사용해야합니다.SqlCommand 매개 변수가있는 행이 없습니다.
내가 작성한 코드 ...
'Check if username already exists'
Public Shared Function usernameExists(Username As String) As Boolean
Dim sqlCommand As SqlCommand = New SqlCommand("Select UserLogin From [User] where UserLogin = '@Username'")
Dim param As SqlParameter = New SqlParameter("Username", SqlDbType.VarChar)
param.Value = Username
sqlCommand.Parameters.Add(param)
Try
SQLAccess.OpenSQLConnection(sqlCommand, SetDBConnectionData) 'SqlDBConnectionData is a function which returns a structSQlAccess'
Dim dsUsers As DataSet = SQLAccess.SQLQueryToDS(sqlCommand)
If dsUsers.Tables(0).Rows.Count > 0 Then
Return True
Else
Return False
End If
Catch ex As Exception
Return True 'TODO - Error Mgs
End Try
End Function
그러나이 작동하지 않습니다는 DataSet
행이 포함되어 있지 않습니다. 아무도 제대로 할 수있는 방법을 보여 주시겠습니까?
예외 메시지는 무엇입니까? – RezaRahmati
예외는 아닙니다. 결과는 null입니다. 나는 기존 사용자 이름을 썼다해도 어떤 사용자도 얻지 못합니다. 그것이 문제이다. –
Tim Schmelter Answer – RezaRahmati