2014-09-27 105 views
0

我對delphi比較新,我想知道如何刪除dbGrid中的條目而不使用dbNavigator而是使用按鈕。應該刪除的條目號必須輸入到sprinit中,而不是在dbGrid中單擊。謝謝你的幫助。使用Delphi中的按鈕刪除DBGrid中的條目

+4

您應該執行操作數據集,而不是網格 - 這就是爲什麼導航器也鏈接到數據集/數據源而不是網格。您可以找到該行,然後刪除匹配的行TDataSet.Locate' TDataSet.Delete' – 2014-09-27 22:09:01

+0

謝謝我會嘗試 – 2014-09-27 23:07:29

+0

取決於您的數據集類型(ADO/ClientDataset /?)[this](http:// stackoverflow .com/questions/15600289/delete-and-refresh-a-record-in-dbgrid-where-u-maintain-the-same-position)post可能會有所幫助。 – bummi 2014-09-28 13:38:04

回答

2

首先很高興在DataSet的第一個記錄中定位,然後它會從第一個記錄中刪除。

DBGrid1.DataSource.DataSet.First; 


現在您所創建的循環(不要忘了創建變量{VAR 我:整數})

For I:=0 to SpinEdit1.Value-1 Do 


之前開始刪除記錄,你會需要驗證DataSet上是否有任何記錄。
你可以做這樣的事情:

if DBGrid1.DataSource.DataSet.RecordCount > 0 then 


最後,你可以刪除的記錄

DBGrid1.DataSource.DataSet.Delete; 



最終代碼會是這樣的:

DBGrid1.DataSource.DataSet.First; //Set on the first Record of the DataSet 
For I:=0 to SpinEdit1.Value-1 Do //Do loop 
    if DBGrid1.DataSource.DataSet.RecordCount > 0 then //Check if have records 
     DBGrid1.DataSource.DataSet.Delete; //Delete