Рейтинг:
1
OriginalGriff
Удалите первые две строки:
"DECLARE @PartyID INT " + vbCrLf + _
"SET @PartyID = 16482594 " + vbCrLf + _
Затем добавьте свой PartyID в качестве параметра в SqlCommand, когда вы его фактически используете:
Using con As New SqlConnection(strConnect)
Dim myValue As Integer = 12345
con.Open()
Using cmd As New SqlCommand(strSQL, con)
cmd.Parameters.AddWithValue("@PartyID", myValue)
Using reader As SqlDataReader = cmd.ExecuteReader()
While reader.Read()
...
End While
End Using
End Using
End Using
Не передавайте строковое значение вашему методу и не пытайтесь объединить его-этот способ слишком опасен: прочтите о SQL-инъекции, и вы поймете, что я имею в виду.
Member 11403304
Я так потерялась здесь. Поэтому то, что я пытаюсь сделать, прежде чем двигаться вперед, - это проверить, работает ли мой sql.
Когда, например, я тестирую вот так Dim strSql As String = GetCaseSQL ("5678")
результаты задаются @PartyID = 16482594
Я бы хотел, чтобы результат был установлен @PartyID = 5678.
Таким образом, результатом всегда должно быть то, что находится в Dim strSql As String = GetCaseDQL ("все, что находится здесь, должно быть возвращено как @PartyID")
OriginalGriff
Проблема в том, что способ, которым вы пытаетесь это сделать, опасен - он включает в себя конкатенацию строк, а это означает, что любой, кто может ввести эту строку, может вводить команды непосредственно на ваш SQL - сервер - и если это веб-сайт, то есть из любой точки мира, - это называется SQL-инъекцией, и его полностью следует избегать: google "bobby tables" и have a read.
Код, который я вам показал, показывает, как это сделать безопасно - вы предоставляете параметр, который SQL-команда вызывает @PartyID и который вы устанавливаете безопасным способом, без конкатенации строк.