做了個城市的三級聯動總是在縣部份總是會偶爾有某條記錄索引越界,有些都正常的,求高高解決……
-------------------出問題部份----
while not Eof do
begin
pxianname.ItemIndex:=0;
pxianname.Items.Add(FieldByName('xianname').AsString);
StringList3.Add(FieldByName('id').AsString);
Next;
end;
//pxianid.Text:=StringList3.Strings[pxianname.ItemIndex];
end
-----------------------------------
procedure TForm1.FormShow(Sender: TObject);
begin
StringList1:=TStringList.Create;//創建常量類
StringList2:=TStringList.Create;//創建常量類
StringList3:=TStringList.Create;//創建常量類
with ADOQuery1 do
begin
//開始查詢表
sql.Clear;
sql.add('select id,shengname from sheng order by id asc ');
open;
while not Eof do
begin
pshengname.text:='請選擇縣';
pshengname.Items.Add(FieldByName('shengname').AsString);
StringList1.Add(FieldByName('id').AsString);
Next;
end;
end;
end;
procedure TForm1.pshengnameChange(Sender: TObject);
begin //事件
pshengid.Text:=StringList1.Strings[pshengname.ItemIndex];
pshiname.Items.Clear;
pshiname.ItemIndex:=0;
pxianname.Items.Clear;
pxianname.ItemIndex:=0;
//-----------------------市處理-----------------------------
with ADOQuery2 do //做市的表記錄回圈顯示
begin//市
SQL.Clear;
SQL.Add('Select id,shiname from shi where shengid='+StringList1.Strings[pshengname.ItemIndex]+' order by id desc');
Open;
if RecordCount=0 then {------市為0,處理市和縣部份-------- }
begin
pshiname.Items.Clear;
pshiname.text:='請添加市';
pshiid.Text:='0';
pxianname.Items.Clear;
pxianname.text:='請添加縣';
pxianid.Text:='0';
end
else {------市不為0,處理市部份-------- }
begin// 市不為0
while not Eof do{------處理市部份-------- }
begin
pshiname.ItemIndex:=0;
pshiname.Items.Add(FieldByName('shiname').AsString);
StringList2.Add(FieldByName('id').AsString);
Next;
end;
pshiid.Text:=StringList2.Strings[pshiname.ItemIndex];
with ADOQuery3 do {------處理縣部份-------- }
begin//縣
SQL.Clear;
SQL.Add('Select id,xianname from xian where shengid='+StringList1.Strings[pshengname.ItemIndex]+' and shiid='+StringList2.Strings[pshiname.ItemIndex]+' order by id desc');
Open;
if RecordCount=0 then {------縣為0,處理縣部份-------- }
begin
pxianname.ItemIndex:=0;
pxianname.text:='請添加縣';
pxianid.Text:='0';
end
else {------縣不為0,處理縣部份-------- }
begin
while not Eof do
begin
pxianname.ItemIndex:=0;
pxianname.Items.Add(FieldByName('xianname').AsString);
StringList3.Add(FieldByName('id').AsString);
Next;
end;
//pxianid.Text:=StringList3.Strings[pxianname.ItemIndex];
end
end;//縣
end; // 市不為0
end; //市
end;//事件
uj5u.com熱心網友回復:
沒有仔細看,但應該是pxianname.Items.Add(FieldByName('xianname').AsString); 這一句出錯
看一下資料庫中這個欄位的記錄吧,應該有null或者空 值
stringlist你加空值的話,是不會增加count的,所以有越界問題
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/81175.html
標籤:數據庫相關
