2012-04-29 19 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

相關問題