情況是這樣的.我建立了一個dbgrid,設為只讀屬性,通過單元格后面的edit按鈕去操作一個inputquery.確定后修改對應單元格資料,
原本我以為這樣可以直接修改,因為我通過DBGrid1.DataSource.DataSet.Fields[sDBGrid1.SelectedIndex].Value確定值的.
但是post時候他會從第一個單元格開始,一直到當前單元格都修改,所以我想肯定是我沒有指定當前指標了吧,那么問題來了,難不成我每次修改的時候我都要first,next去判斷是否當前單元格,這樣效率肯定很低的,我不知道各位是怎么做到的,能否給個參考?
這是我的問題的代碼,沒有指定當前指標位置.
procedure TFrm_User.sDBGrid1EditButtonClick(Sender: TObject);
var
s: string
begin
try
with sDBGrid1.DataSource.DataSet do
begin
Open;
Edit;
if InputQuery('編輯>>', '請輸入 :', s) then
sEdit3.Text := s;
Fields[sDBGrid1.SelectedIndex].Value:=s;
sDBGrid1.DataSource.DataSet.Post;
Close;
end;
Except
ShowMessage(inttostr(GetLastError));
end;
end;
感激不盡!我目前不想沒修改一次都要去一行一行的判斷.能否有更高效率的辦法?該怎么修改,還請各位指教,
uj5u.com熱心網友回復:
沒看懂。是點DBGrid中某個單元格,然后在Edit中顯示此單元格的值,然后修改這個值,再點“保存”按鈕保存??
還是點DBGrid中某個單元格,然后在Edit輸入一個值,再點“保存”按鈕保存這個值到DBGrid中當前行的某一個欄位中??
另外,你代碼中有一句“Open;”,怎么點修改按鈕時才打開DataSet啊,通常都是先打開DataSet,然后再輸入值,再點保存按鈕啊。
如果之前沒有打開DataSet,在點修改按鈕時打開,那就會自動跳到第一條記錄。這里輸入了值,再點保存按鈕,就不知道是在修改哪條記錄的值了。
uj5u.com熱心網友回復:
不是,你細心看會發現事件是DBGrid1EditButtonClick.所以我是用編輯按鈕打開一個InputQuery.然后確定后去修改對應單元格的值uj5u.com熱心網友回復:
dbgrid的屬性中有一個option>dgEditing,轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/90330.html
標籤:語言基礎/算法/系統設計
