void __fastcall TForm2::BitBtn26Click(TObject *Sender)
{
try
{
ADOTable1->Close();
ADOTable1->Edit();
ADOTable1->Post();
ADOTable1->FieldByName("編號")->AsVariant = ListView1->Items->Item[0]->Caption;
ADOTable1->FieldByName("商品名稱")->AsVariant =ListView1->Items->Item[0]->SubItems->Strings[1]
ADOTable1->FieldByName("數量")->AsVariant = ListView1->Items->Item[0]->SubItems->Strings[2];
ADOTable1->FieldByName("單價")->AsVariant = ListView1->Items->Item[0]->SubItems->Strings[3];
ADOTable1->Next();
ADOTable1->Active=true;
}
catch(...)
{
}
}
以上是我的程式碼 請各位高手幫幫忙 到底哪邊出錯
它顯示出
project Project1.exe raised exception class EDatabaseError with message 'ADOTable:Cannot perform this operation on a closed dataset'.
或是有哪些地方我沒設定到的 請各位幫幫忙
兩個方案
如果你的ADOTable1目前的資料就是你要的
不要一開始就 close, 後面會抓不到資料
如果你的ADOTable1目前的資料不是你要的, 所以先 Close
那妳要重新去抓妳要的資料放入 ADOTable1 (請補這段程式碼), 然後才能去處理
我不懂BCB, 但是根據錯誤訊息:
raised exception class EDatabaseError with message 'ADOTable:Cannot perform this operation on a closed dataset
說不能在關閉狀態下的資料表完成這項操作. 看你的程式, 一開始的ADOTable1->Close();就是關閉了資料表, 是不是應該要先ADOTable1->Open(); 然後在完成
所有的更新後再用ADOTable1->Close();