Я беру над проектом VB и с моими ограниченными навыками VB я не могу получить следующее параметризованный запрос для возвращения результатов:Почему этот параметризованный sql-запрос не возвращает результаты?
Dim strSQLUser As String = "Select Name, CompanyID from Users where UserName = @UserName"
dbCommand = New SqlCommand(strSQLUser, dbConn)
dbCommand.Parameters.AddWithValue("@UserName", User)
dr = dbCommand.ExecuteReader
Однако это исходный код, который делает работу:
Dim strSQLUser As String = "Select Name, CompanyID from Users where UserName ='" & User & "'"
dbCommand = New SqlCommand(strSQLUser, dbConn)
dr = dbCommand.ExecuteReader
Как вы можете видеть, исходный код был уязвим для SQL-инъекции и должен быть исправлен.
Extra - Вот линия, которая делает чтение:
While dr.Read
DbUser = dr.GetValue(0).ToString
DbCompany = dr.GetValue(1).ToString
End While
Я полагаю, что переменная User является строкой справа? – Steve