adoquery1.SQL.Add('delete from jsj where id ='+id);----这一句的id是要将变量id的字符串值放在此处,且要用单引号括起来,可改为:adoquery1.SQL.Add('delete from jsj where id =' + '''' + id + '''');
dbgrid.datasource.dataset.delete;
1、是.DBGrid.DataSource.DataSet.FieldByName('no').AsString返回的是当前行的no字段中的值.2、没问题.这个delete方法是删除数据集的当前这一行数据,数据集打开后会默认选择第一行.当前行,也就是dbgrid中小三角指的那一行
DBGridColumn := DBGrid2.Columns.Add;index1:=DBGridColumn .index;
procedure TForm1.btn1Click(Sender: TObject);var i : Integer;begin if dbgrd1.SelectedRows.Count>0 then begin with q1 do for i:=0 to dbgrd1.SelectedRows.Count-1 do begin GotoBookmark(pointer(dbgrd1.SelectedRows.Items[i])); ShowMessage
如果是使用 dbgrid 控件,将 dbgrid 当前选中的多条记录删除,可以不用再借助于 adoquery 来完成删除记录操作.dbgrdi 控件本身提供了一些对记录的操作,当选中多条记录后,会将当前选中的数据保存在 SelectedRows 属性中,SelectedRows 被定义为 TBookmarkList 类型,提供了 delete 方法,专门用于删除当前选中的多个记录.因此,可以直接使用以下代码:
只要那句就可以了!你不是已经选择多条了吗!procedure TForm1.button1click(sender:tobject);begin dbgrid1.selectedrows.delete;end;就可以看见dbgrid里你选中的记录没有了啊!如果直接连的数据库响应的表里的数据也删除了
1 可以设置宽度的DBGrid.Columns[i].Width := xxxx可以根据列标题宽度自动设置一个宽度DBGrid.Columns[i].Width := Canvas.TextWidth(DBGrid.Columns[i].Title.Caption)2 很简单的办法,如果sql语句没有返回结果(update、insert这样的),dbgrid的数据源就改为空,此时应该显示的是上条语句的执行结果,比如“影响了多少行”,不应该继续显示表内容
//删除选中的记录varstrSql:string;beginwith TStringList.Create do tryTViewForm1.DBGlist.DataSource.DataSet.First;while not TViewForm1.DBGlist.DataSource.DataSet.Eof do beginif TViewForm1.DBGlist.SelectedRows.CurrentRowSelected
Table1.DisableControls; //禁止刷新DBGrid Table1.Delete; Table1.EnableControls; //允许刷新DBGrid