首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

DBGrid数据删除解决办法

2013-01-25 
DBGrid数据删除//这是插入的void __fastcall TForm1::btnenteringClick(TObject *Sender){ADOQuery1-Clos

DBGrid数据删除


//这是插入的
void __fastcall TForm1::btnenteringClick(TObject *Sender)
{
      ADOQuery1->Close();
      ADOQuery1->SQL->Clear();
      ADOQuery1->SQL->Add("insert into personal_information values('"+edtname->Text+"','"+edtnation->Text+ \
                           "','"+sex+"','"+age+"','"+birthdate+"','"+edtid->Text+"','"+np+"')\
                           select Name,Nation,Sex,Age,CONVERT(varchar(10),Birthdate,20),IDcard,NP from personal_information");
      ADOQuery1->Open();
}
//这是删除多行的
void __fastcall TForm1::btndeleteClick(TObject *Sender)
{

  for(int i=0;i<DBGrid1->SelectedRows->Count;i++)
  {
    DBGrid1->DataSource->DataSet->GotoBookmark((void *)DBGrid1->SelectedRows->Items[i].c_str());
    DBGrid1->DataSource->DataSet->Delete();
  }

 
}

      


可是开始执行就可以删除,1插入记录后再删除,虽然DBGrid中删除了,可是数据表中的记录没有删除,改怎么修改?

[解决办法]
估计你的adoquery的LockType是ltBatchOptimistic,那么提交数据更新的数据库是用UpdateBatch

加一句
DBGrid1->DataSource->DataSet->UpdateBatch(arAll );

热点排行