全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:801
推到 Plurk!
推到 Facebook!

請教一小段程式

尚未結案
windshiuan
一般會員


發表:22
回覆:11
積分:6
註冊:2003-11-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-08-18 15:12:05 IP:218.162.xxx.xxx 未訂閱
下面這段程式是我寫資料庫真的欄位資料比對的程式 AnsiString temp; while(!ADOTable1->Eof) { temp = ADOTable1->FieldValues["車牌"]; if(temp == Edit1->Text) { Edit2->Text=ADOTable1->Fields->Fields[6]->AsString; //ShowMessage("找到資料"); } else { ShowMessage("找不到資料"); } ADOTable1->Next(); } 我是用ADOTable1往下比對一筆一筆找 可是請問要怎麼讓ADOTable1找到最後一筆後.如果沒找到資料 就秀出ShowMessage("找不到資料"); 然後讓ADOTable1又指回到第一筆 或是找到資料後.就讓ADOTable1指回到第一筆.等待下一次的資料比對 煩請大家解惑一下..感謝~~
folkchen
高階會員


發表:9
回覆:232
積分:173
註冊:2003-10-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-08-18 16:15:35 IP:211.20.xxx.xxx 未訂閱
ADOTable1->First(); //就可以回到第一筆資料 ADOTable1->Last(); //最後一筆資料 ADOTable1->Next(); //下一筆資料 發表人 - folkchen 於 2004/08/18 16:19:10
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-08-18 16:56:41 IP:219.132.xxx.xxx 未訂閱
引言: 下面這段程式是我寫資料庫真的欄位資料比對的程式 AnsiString temp; while(!ADOTable1->Eof) { temp = ADOTable1->FieldValues["車牌"]; if(temp == Edit1->Text) { Edit2->Text=ADOTable1->Fields->Fields[6]->AsString; //ShowMessage("找到資料"); } else { ShowMessage("找不到資料"); } ADOTable1->Next(); } 我是用ADOTable1往下比對一筆一筆找 可是請問要怎麼讓ADOTable1找到最後一筆後.如果沒找到資料 就秀出ShowMessage("找不到資料"); 然後讓ADOTable1又指回到第一筆 或是找到資料後.就讓ADOTable1指回到第一筆.等待下一次的資料比對 煩請大家解惑一下..感謝~~
不討論你程式的效率,針對你的問題!
   AnsiString temp;
   bool is_found=false;
   ADOTable1->First(); 
   while(!ADOTable1->Eof)
   {
      temp = ADOTable1->FieldValues["車牌"];
      if(temp == Edit1->Text)
      {
         Edit2->Text=ADOTable1->Fields->Fields[6]->AsString;
         is_found=true;
         break;
         //ShowMessage("找到資料");
      }
//      else
//      {
//         ShowMessage("找不到資料");
//      }
      ADOTable1->Next();
   }
   if (is_found)
     ShowMessage("找到資料");
   else
     ShowMessage("找不到資料");
請參考!    
Andy Chang
------
Andy Chang
windshiuan
一般會員


發表:22
回覆:11
積分:6
註冊:2003-11-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-08-18 21:36:44 IP:218.162.xxx.xxx 未訂閱
引言:
引言: 下面這段程式是我寫資料庫真的欄位資料比對的程式 AnsiString temp; while(!ADOTable1->Eof) { temp = ADOTable1->FieldValues["車牌"]; if(temp == Edit1->Text) { Edit2->Text=ADOTable1->Fields->Fields[6]->AsString; //ShowMessage("找到資料"); } else { ShowMessage("找不到資料"); } ADOTable1->Next(); } 我是用ADOTable1往下比對一筆一筆找 可是請問要怎麼讓ADOTable1找到最後一筆後.如果沒找到資料 就秀出ShowMessage("找不到資料"); 然後讓ADOTable1又指回到第一筆 或是找到資料後.就讓ADOTable1指回到第一筆.等待下一次的資料比對 煩請大家解惑一下..感謝~~
不討論你程式的效率,針對你的問題!
   AnsiString temp;
   bool is_found=false;
   ADOTable1->First(); 
   while(!ADOTable1->Eof)
   {
      temp = ADOTable1->FieldValues["車牌"];
      if(temp == Edit1->Text)
      {
         Edit2->Text=ADOTable1->Fields->Fields[6]->AsString;
         is_found=true;
         break;
         //ShowMessage("找到資料");
      }
//      else
//      {
//         ShowMessage("找不到資料");
//      }
      ADOTable1->Next();
   }
   if (is_found)
     ShowMessage("找到資料");
   else
     ShowMessage("找不到資料");
請參考!    
Andy Chang
請教...is_found這個是?? 可以註解一下嗎?? 感謝~~
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-08-18 23:49:19 IP:219.132.xxx.xxx 未訂閱
is_found 是一個布林變數,bool is_found=false; // 初始設為偽(假) 這是針對你所提出如果沒找到資料就秀出ShowMessage("找不到資料"); ,也就是程式一開始先預設找不到資料,若找到將is_found=true; // 設為真,如此只要使用:
if (is_found)
  ShowMessage("找到資料");
else
  ShowMessage("找不到資料");
就可以了,
請參考
Andy Chang
------
Andy Chang
系統時間:2024-05-04 18:06:31
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!