读书人

DBGrid数据删除解决办法

发布时间: 2013-01-25 15:55:29 作者: rapoo

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 );

读书人网 >C++ Builder

热点推荐