0

我看到有很多这样的问题,但我仍然无法通过查看它们来弄清楚我的错误。我正在尝试从 Access 中的表中删除一条记录。这是代码:

//删除记录的方法 public static void DeleteProject(Project aProject) {

        {
            String sSQLProjectDeleteCommand = "Delete * from Project where JobNo=" + aProject.JobNo;


            // Create the command object
            if (aConnection.State == ConnectionState.Closed)
                aConnection.Open();

            OleDbCommand Cmd = aConnection.CreateCommand();
            //Delete project
            Cmd.CommandText = sSQLProjectDeleteCommand;
            // Execute the SQL command
            Cmd.ExecuteNonQuery();
            aConnection.Close();
        }
        catch (System.Exception exc)
        {
            Console.WriteLine(exc.Message);
        }
    }

我正在使用 3 层架构,错误发生在“Cmd.ExecuteNonQuery();”。

4

1 回答 1

0

你不是DELETE * FROMDELETE FROM

删除*它应该可以工作。

--

更新:另外,如果JobNo是一个字符串,你应该在参数中添加引号:

String sSQLProjectDeleteCommand = "Delete * from Project where JobNo='" + aProject.JobNo + "'";

不过,最好使用参数来完成:

String sSQLProjectDeleteCommand = "Delete * from Project where JobNo=?";
...
Cmd.Parameters.Add(aProject.JobNo);
Cmd.ExecuteNonQuery();

更新 2:修改参数,因为 OleDbCommand 不允许命名参数,似乎

于 2012-04-29T05:44:01.543 回答