导航:
论坛 -> DELPHI技术
斑竹:liumazi,sephil
作者:
2003/6/6 8:24:39
标题:
加入我的收藏
楼主:
请教,如何在dbgrid控件里选中多行,然后通过循环来将之一起删除? 谢谢大家。
----------------------------------------------
那一天我在街头踯躅 你在秋天里独自跳舞 回首落满悲欢的来时路 那覆水难收的赌注 我们用青春一起作证 我们曾遇见到幸福
作者:
2003/6/6 10:07:15
1楼:
设定dbgrid1.options中的dgmultiselect为true 删除:请参考以下这段代码 procedure TForm1.Button1Click(Sender: TObject); var i,j: Integer; begin if DBGrid1.SelectedRows.Count>0 then begin with DBGrid1.DataSource.DataSet do for i:=DBGrid1.SelectedRows.Count-1 downto 0 do begin GotoBookmark(pointer(DBGrid1.SelectedRows.Items[i])); delete; end; end; end;
----------------------------------------------
-
作者:
2003/6/6 11:18:47
2楼:
谢谢 workman 老兄的回答,可是我照这样写,程序出错说:table is a readonly 我用的是query组件,是不是和query组件有关系?还请指教。谢谢。
----------------------------------------------
那一天我在街头踯躅 你在秋天里独自跳舞 回首落满悲欢的来时路 那覆水难收的赌注 我们用青春一起作证 我们曾遇见到幸福
作者:
2003/6/6 15:02:34
3楼:
你把dbgrid的readonly属性改为false 在删除后要记得把dbgrid.refresh一下
----------------------------------------------
我从迷茫中走来,希望能清晰地离去
作者:
2003/6/6 15:14:59
4楼:
好象跟dbgrid无关吧 如果是table,要把table的readonly设置为false 如果是query,要把query的***(靠,忘记了,自己找找看吧,boolean型,)属性设置一下,但是这里很危险,因为query可能是对几个表取的数据集,望回删除的时候比较危险。 原因:你用datasource连接数据集和dbgrid,事实上在对dbgrid操作的同时就是对数据库操作。也就是说你删除dbgrid的几行同时就在删除数据库的几条记录。 如果不想有这个结果,还是用stringgrid吧
----------------------------------------------
-
作者:
2003/6/6 15:22:59
5楼:
不是的avman老兄,我首先将dbgrid的readonly属性改为的false,可是依然不行。 我想ldyocean说得对,我这个dbgrid组件是通过datasource组件和一个query组件联系起来的。我因为这里用的是query,是不是需要写sql语句来删除?可是我试着写时又有点糊涂了,因为要删除多项,这样就不能改动这个query组件的sql语句,难道还要再加上一个临时的query不成? 各位大虾,请帮我想一想,应该怎么删除?
----------------------------------------------
那一天我在街头踯躅 你在秋天里独自跳舞 回首落满悲欢的来时路 那覆水难收的赌注 我们用青春一起作证 我们曾遇见到幸福
作者:
2003/6/6 15:27:10
6楼:
你到底是要删除显示内容,还是要删除数据记录? 删除显示内容建议使用stringgrid 删除数据记录,另外使用一个query,然后写sql语句,删除,然后把原来的query close然后open就行了
----------------------------------------------
-
作者:
2003/6/6 15:46:20
7楼:
我是想删除库里的内容。明白了,谢谢ldyocean。看来真得再加一个query组件了。
----------------------------------------------
那一天我在街头踯躅 你在秋天里独自跳舞 回首落满悲欢的来时路 那覆水难收的赌注 我们用青春一起作证 我们曾遇见到幸福