程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c++-C++builder DBGrid雙擊獲取記錄問題

c++-C++builder DBGrid雙擊獲取記錄問題

編輯:編程綜合問答
C++builder DBGrid雙擊獲取記錄問題

圖片說明
無論我雙擊001還是其他記錄,該ADODataSet1->FieldByName("員工號")->AsString顯示的就是001的值,不曾改變。代碼如下
AnsiString Path;
AnsiString sqlstr = "Select 頭像 from Photo where 員工號='"+ADODataSet1->FieldByName("員工號")->AsString+"'";
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add(sqlstr);
ADOQuery1->Open();
Path = ADOQuery1->FieldByName("頭像")->AsString;
Image1->Picture->LoadFromFile(Path);

最佳回答:


這個要看你的代碼是寫在什麼地方的了,試試下面的:

void __fastcall TForm1::DBGrid1DblClick(TObject Sender)//雙擊
{
if(((TDBGrid
)Sender)->DataSource->DataSet->Active==false || ((TDBGrid*)Sender)->DataSource->DataSet->RecordCount<=0)return;

AnsiString Path;
AnsiString sqlstr = "Select 頭像 from Photo where 員工號='"+((TDBGrid*)Sender)->DataSource->DataSet->FieldByName("員工號")->AsString+"'";
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add(sqlstr);
ADOQuery1->Open();
Path = ADOQuery1->FieldByName("頭像")->AsString;
Image1->Picture->LoadFromFile(Path);

}

還有一點,你的員工號是文本類型的還是數字類型的,數字類型的話不要加''

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved