单击“保存”按钮时发生未处理的异常

oyxsuwqo  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(380)
private void btnSave_Click(object sender, EventArgs e)
{
    if (!ValidInput())
        return;
    using (var conn = new OleDbConnection(DatabaseObjects.ConnectionString))
    {
        conn.Open();
        command = new OleDbCommand("insert into Students (RollNo, SName, FName, DOB, Class, Section) values (@RollNo, @SName, @FName, @DOB, @Class, @Section)", conn);
        command.Parameters.Add(new OleDbParameter("RollNo", txtRollNo.Text));
        command.Parameters.Add(new OleDbParameter("SName", txtSName.Text));
        command.Parameters.Add(new OleDbParameter("FName", txtFName.Text));
        command.Parameters.Add(new OleDbParameter("DOB", dtpDOB.Text));
        command.Parameters.Add(new OleDbParameter("Class", cmbClass.Text));
        command.Parameters.Add(new OleDbParameter("Section", cmbSection.Text));
        command.ExecuteNonQuery();
        MessageBox.Show("Saved");
    }
}

当我点击保存按钮时,这个错误正在上升(插入语法错误)。

我已经对代码进行了故障排除,我发现如果字段节和参数@section从insert语句中删除了。那么代码工作正常。但我想得到它的combobox(cmbsection)值,并将其存储在数据库中。我该怎么办?

fxnxkyjh

fxnxkyjh1#

“section”在ms access中是一个保留字,因此在这里使用它会使查询解析器感到困惑。
通过将数据库对象(列、表等) Package 在方括号中,可以显式地告诉查询哪些标识符引用了数据库对象:

INSERT INTO [Students]
    ([RollNo], [SName], [FName], [DOB], [Class], [Section])
    VALUES (@RollNo, @SName, @FName, @DOB, @Class, @Section)

相关问题