Вы широко открыты для внедрения SQL с использованием этого кода.
См. Произойдет, если вы введете имя пользователя как ' OR 2>1--
Вам необходимо изменить, чтобы использовать параметризованный запрос.
Dim queryString As String = "SELECT COUNT(*) AS Num_Of_User FROM tblusers WHERE username=@username AND password=@password"
myConnection = New System.Data.SqlClient.SqlConnection("Data Source=(local);InitialCatalog=dbtest;Integrated Security=True")
myCommand = New System.Data.SqlClient.SqlCommand(queryString, myConnection)
myCommand.Parameters.AddWithValue("@username", requestName)
myCommand.Parameters.AddWithValue("@password", requestPass)
Также вы не обрабатываете какие-либо исключения, которые могут быть сгенерированы, и не утилизируете ваши объекты.
Ваш код должен выглядеть следующим образом.
Dim numUsers as Integer
Using myConnection as New System.Data.SqlClient.SqlConnection("Data Source=(local);InitialCatalog=dbtest;Integrated Security=True")
Dim queryString As String = "SELECT COUNT(*) AS Num_Of_User FROM tblusers WHERE username=@username AND password=@password"
Using myCommand as New System.Data.SqlClient.SqlCommand(queryString, myConnection)
myConnection.Open
myCommand.Parameters.AddWithValue("@username", requestName)
myCommand.Parameters.AddWithValue("@password", requestPass)
numUsers = myCommand.ExecuteScalar()
End Using
End Using
Приведенный выше код обеспечит удаление ваших объектов, но не будет обрабатывать любые исключения, которые могут быть выброшены.