sql
  • vb.net
  • 2015-04-19 4 views 0 likes 
    0

    У меня есть следующий код:VB SQL Ошибка 3061: Слишком мало параметров

    CurrentDb.Execute "UPDATE Employees SET Login =" & Me.LoginTxt & ",FirstName ='" & Me.FNameTxt & "'" & ",LastName ='" & Me.LNameTxt & "'" & _ 
        ",HourlyRate ='" & Me.HRateTxt & "'" & ",ShopID ='" & Me.ShopIDCmbo & "'" & ",HomePhone ='" & Me.HomePhoneTxt & "'" & _ 
        " WHERE ID =" & Me.IDtxt.Value 
    

    Я получаю ошибку время выполнения 3061: Слишком мало параметров. Ожидаемый 1.

    Это говорит о том, что ошибка находится в последней части, т.е. " WHERE ID =" & Me.IDtxt.Value Я не могу на всю жизнь выяснить, как исправить это

    +0

    Имейте в виду, что вы _extremely_ уязвимы для SQL-инъекции с этим кодом. Чтобы избежать этого, вы должны использовать параметризованные запросы. Представьте, что произойдет, если пользователь наберет «April Fools!»; Сотрудники Drop Table; - 'в текстовом поле Me.LoginTxt. –

    ответ

    0

    Просьба построить инструкцию SQL в строке, сделать программу выведенной из нее и добавить ее в сообщение.

    Это поможет нам понять, что не так.

    Если мне нужно угадать, я бы добавил цитаты вокруг параметра Me.LoginTxt.

    +0

    Я переписал заявление, и оказалось, что, как вы сказали, котировки отсутствовали у Me.LoginTxt –

    Смежные вопросы