2012-04-29 20 views
0

我看到有很多这些问题,但我仍然无法从看他们的错误中看出我的错误。我正试图从Access中的表中删除一条记录。下面是代码:“对于一个或多个所需参数没有给定值。”试图删除记录时出错

//方法来删除记录 公共静态无效DeleteProject(项目在进行一个项目) {

 { 
      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发生错误() ;”。

回答

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:修改后的参数,因为OleD bCommand不允许命名参数,看起来好像是

+0

我已经*了,它仍然有相同的错误 – 2012-04-29 06:08:27

+0

对不起,请参阅编辑 – Jcl 2012-04-29 07:26:30

+0

工作!非常感谢,JobNo是一个字符串变量,因为它被格式化为“J ####”,并且我的代码基于我的类中的一个示例,但是我没有意识到该示例中的ID是int。 – 2012-04-29 07:39:41

相关问题