关键字where附近的语法不正确

时间:2017-02-14 14:30:41

标签: sql-server vb.net

SqlQuery = "INSERT INTO GradeTable(Grade,UserID,RegDate)Values('" & TxtGrade.Text.Trim & "','" & UserID & "','" & DTBReg.Value & "'Where GradeTable.StudentID ='" & StudentID & "' and GradeTable.CourseID= '" & CourseID & "') "

1 个答案:

答案 0 :(得分:2)

看起来你正在尝试做什么,你需要的是一个UPDATE语句,而不是你写的INSERT。这似乎是一个更合适的查询:

UPDATE GradeTable 
SET Grade = @grade, 
    UserID = @UserID, 
    RegDate = @RegDate 
WHERE StudentID = @StudentID AND CourseID = @CourseID

请注意,我使用的是参数,而不是文本框的值。这是因为您容易受到SQL注入最常见的数据库安全漏洞之一的攻击。

将该文本用于查询,然后您可以通过以下方式将值添加到查询中:

cmd.Parameters.AddWithValue("@grade", TxtGrade.Text.Trim);
cmd.Parameters.AddWithValue("@UserID", UserID);
//AND SO ON WITH OTHER PARAMETERS

确认cmd是您的SqlCommand