这个VB.net代码中的语法错误在哪里?

时间:2016-03-31 21:15:47

标签: vb.net ms-access

我正在为大学做一个项目,我们刚刚开始学习VB.net。我们的任务是创建一个从模拟数据库中提取数据的表单,并像大学的注册表/学生空间一样,他们可以看到正在采取的模块,DOB等......

我们不断收到错误代码:

  

UPDATE语句中的语法错误。

每次我们尝试运行表格的一部分,我们为新模块注册学生。下面是我们为实现这一目标而尝试运行的代码。

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

    Dim sqlString As String = "UPDATE [Student] SET module = @module, moduleName = @moduleName, credit = @credit, moduleLeader = @moduleLeader WHERE studentID =" & frmMenuOptionsStudent.lblStaffNo.Text & "'"
    Dim cmd As New OleDbCommand(sqlString, conn)

    cmd.Parameters.AddWithValue("@module", ComboBox1.Text)
    cmd.Parameters.AddWithValue("@moduleName", TextBox2.Text)
    cmd.Parameters.AddWithValue("@credit", TextBox3.Text)
    cmd.Parameters.AddWithValue("@moduleLeader", TextBox4.Text)

    Try
        conn.Open()
        cmd.ExecuteNonQuery()
        MessageBox.Show("New Module Added")
        conn.Close()
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try

End Sub

我们怀疑这可能是一个简单的修复,但我们根本找不到错误!救命! :(

1 个答案:

答案 0 :(得分:4)

模块是reserved word in MS-Access。你需要方括号

Dim sqlString As String = "UPDATE [Student] SET [module] = @module, ....

顺便说一下,我无法理解为什么你在每个字段使用参数而不在WHERE子句中使用参数。只需在各处使用它们。这样可以避免因WHERE条件值的缺失引起的其他错误。