C++Builder 程序员博客
28 Nov
//删除多选的记录
void __fastcall TForm1::N1Click(TObject *Sender)
{
for(int i=0;i <(DBGrid1->SelectedRows->Count);i++)
{
DBGrid1->DataSource->DataSet->Bookmark=DBGrid1->SelectedRows->Items[i];
DBGrid1->DataSource->DataSet->Delete();
}
}
但是记录已经删除了DBGrid1->SelectedRows->Count还是不变,除非重新选择记录.这样很容易出错.
高人指点一下.
不行,还是没有更新DBGrid1->SelectedRows->Count的值.
把这个DBGrid的DataSource的Enabled设置成false,再恢复为true试试
要将MultiSelect 设为True
以上都不行,是不是BUG啊
删除数据后
执行 selcet * from….
搜索出数据,显示就不会错了
删完了,刷新一下数据集
你的Bookmark用来干啥的? 代码不怎么完整!
for(int i=0;i <DBGrid1->SelectedRows->Count;i++)
{
DBGrid1->DataSource->DataSet->GotoBookmark((void *)fm_ch_prod->DBGrid1->SelectedRows->Items[i].c_str()); //定位 如果有的话
DBGrid1->DataSource->DataSet->Delete();
}
汗…….改的不对…..
修改版
for(int i=0;i <DBGrid1->SelectedRows->Count;i++)
{
DBGrid1->DataSource->DataSet->GotoBookmark((void *)DBGrid1->SelectedRows->Items[i].c_str()); //定位 如果有的话
DBGrid1->DataSource->DataSet->Delete();
}