SqlQuery = "INSERT INTO GradeTable(Grade,UserID,RegDate)Values('" & TxtGrade.Text.Trim & "','" & UserID & "','" & DTBReg.Value & "'Where GradeTable.StudentID ='" & StudentID & "' and GradeTable.CourseID= '" & CourseID & "') "
ответ
Похоже, что вы пытаетесь сделать то, что вам нужно, это инструкция UPDATE, а не INSERT, когда вы пишете. Это, кажется, гораздо больше: запрос, соответствующий ему
UPDATE GradeTable
SET Grade = @grade,
UserID = @UserID,
RegDate = @RegDate
WHERE StudentID = @StudentID AND CourseID = @CourseID
Обратите внимание, что я использовал параметры, а не стоимость вашего текстового поля. Это связано с тем, что вы уязвимы для одного из наиболее распространенных недостатков безопасности базы данных, которые являются SQL Injection.
Используйте этот текст для вашего запроса, а затем вы можете добавить свои значения в запрос таким образом:
cmd.Parameters.AddWithValue("@grade", TxtGrade.Text.Trim);
cmd.Parameters.AddWithValue("@UserID", UserID);
//AND SO ON WITH OTHER PARAMETERS
Assumming ЦМД ваш SqlCommand
Будьте осторожны с помощью AddWithValue в специальных запросах. Иногда это может привести к неправильному типу данных и вызвать проблемы. Лучше всего явно определить тип данных. http://blogs.msmvps.com/jcoehoorn/blog/2014/05/12/can-we-stop-using-addwithvalue-already/ Все еще +1 от меня !!! –
@SeanLange, вы правы в этом. Я просто использовал AddWithValue, поскольку я не знаю типы данных таблиц OP. Хорошее наблюдение. – NicoRiff
Вы должны прочитать о, понять и начать использовать параметризованные запросы перед тем, как приходят визитные карточки. http://bobby-tables.com/ Это пример учебника для уязвимости sql injection. –
Это не вопрос, это код. – HoneyBadger
Почему вы используете предложение where в инструкции insert? – NicoRiff