void __fastcall TForm1::FormCreate(TObject *Sender)
{
ADOQuery1->Connection=ADOConnection1;
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("select distinct state from authors");
ADOQuery1->Open();
while(!ADOQuery1->Eof){
TreeView1->Items->Add(NULL,ADOQuery1->FieldByName("state")->AsString);
ADOQuery1->MoveBy(1);
}
int n=TreeView1->Items->Count;
TTreeNode* node[50];
for(int i=0;i<n;i++){
node[i]=TreeView1->Items->Item[i];
}
for(int i=0;i<n;i++){
ADOQuery1->Close();
ADOQuery1->SQL->Add("select distinct city from authors where state='"+node[i]->Text+"'");
ADOQuery1->Open();
while(!ADOQuery1->Eof){
TreeView1->Items->AddChild(node[i],ADOQuery1->FieldByName("city")->AsString);
ADOQuery1->MoveBy(1);
}
}
//初始化串列列名
StringGrid1->Cells[0][1]="au_id";
StringGrid1->Cells[0][2]="au_fname";
StringGrid1->Cells[0][3]="au_lname";
StringGrid1->Cells[0][4]="phone";
StringGrid2->Cells[0][1]="au_id";
StringGrid2->Cells[0][2]="au_fname";
StringGrid2->Cells[0][3]="au_lname";
StringGrid2->Cells[0][4]="phone";
int Rows1=1;
while(!ADOQuery1->Eof){
StringGrid1->Cells[1][Rows1]=ADOQuery1->FieldByName("au_id")->AsString;
StringGrid1->Cells[2][Rows1]=ADOQuery1->FieldByName("au_lName")->AsString;
StringGrid1->Cells[3][Rows1]=ADOQuery1->FieldByName("au_fName")->AsString;
StringGrid1->Cells[4][Rows1]=ADOQuery1->FieldByName("phone")->AsString;
ADOQuery1->MoveBy(1);
Rows1++ ;
}
AnsiString ssql4 = "select * from authors where state='"+node[0]->Text+"' order by au_lname";
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add(ssql4);
ADOQuery1->Open();
int Rows2=1;
while(!ADOQuery1->Eof){
StringGrid2->Cells[1][Rows2]=ADOQuery1->FieldByName("au_lName")->AsString;
StringGrid2->Cells[2][Rows2]=ADOQuery1->FieldByName("au_fName")->AsString;
StringGrid2->Cells[3][Rows2]=ADOQuery1->FieldByName("au_id")->AsString;
StringGrid2->Cells[4][Rows2]=ADOQuery1->FieldByName("phone")->AsString;
ADOQuery1->MoveBy(1);
Rows2++ ;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::TreeView1Click(TObject *Sender)
{
TTreeNode * aNode=TreeView1->Selected;
int r1=1;
for(int i=1;i<StringGrid1->RowCount;i++){
StringGrid1->Rows[i]->Clear();
StringGrid2->Rows[i]->Clear();
}
AnsiString ssql1;
ssql1="select * from authors where city='"+aNode->Text+"' order by au_id"; //運行之后,指到這行
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add(ssql1);
ADOQuery1->Open();
while(!ADOQuery1->Eof){
TreeView1->Items->AddChild(aNode,ADOQuery1->FieldByName("city")->AsString);
ADOQuery1->MoveBy(1);
}
while(!ADOQuery1->Eof){
StringGrid1->Cells[r1][1]=ADOQuery1->FieldByName("au_id")->AsString;
StringGrid1->Cells[r1][2]=ADOQuery1->FieldByName("au_lname")->AsString;
StringGrid1->Cells[r1][3]=ADOQuery1->FieldByName("au_fname")->AsString;
StringGrid1->Cells[r1][4]=ADOQuery1->FieldByName("phone")->AsString;
ADOQuery1->MoveBy(1);
r1++;
}
int r2=1;
AnsiString ssql2="select * from authors where state='"+aNode->Text+"' order by au_fname";
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add(ssql2);
ADOQuery1->Open();
while(!ADOQuery1->Eof){
StringGrid2->Cells[r2][1]=ADOQuery1->FieldByName("au_id")->AsString;
StringGrid2->Cells[r2][2]=ADOQuery1->FieldByName("au_lname")->AsString;
StringGrid2->Cells[r2][3]=ADOQuery1->FieldByName("au_fname")->AsString;
StringGrid2->Cells[r2][4]=ADOQuery1->FieldByName("phone")->AsString;
ADOQuery1->MoveBy(1);
r2++;
}
int r3=1;
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("select * from authors where state='"+aNode->Text+"' order by au_id");
ADOQuery1->Open();
while(!ADOQuery1->Eof){
StringGrid1->Cells[1][r3] = ADOQuery1->FieldByName("au_id")->AsString;
StringGrid1->Cells[2][r3] = ADOQuery1->FieldByName("au_lname")->AsString;
StringGrid1->Cells[3][r3] = ADOQuery1->FieldByName("au_fname")->AsString;
StringGrid1->Cells[4][r3] = ADOQuery1->FieldByName("phone")->AsString;
ADOQuery1->MoveBy(1);
r3++;
}
int r4=1;
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("select * from authors where state='"+aNode->Text+"' order by au_lname");
ADOQuery1->Open();
while(! ADOQuery1->Eof){
StringGrid2->Cells[1][r4] = ADOQuery1->FieldByName("au_lname")->AsString;
StringGrid2->Cells[2][r4] = ADOQuery1->FieldByName("au_fname")->AsString;
StringGrid2->Cells[3][r4] = ADOQuery1->FieldByName("au_id")->AsString;
StringGrid2->Cells[4][r4] = ADOQuery1->FieldByName("phone")->AsString;
ADOQuery1->MoveBy(1);
r4++;
}
}
uj5u.com熱心網友回復:
錯誤資訊呢?uj5u.com熱心網友回復:
是可以運行,界面也出來了,但是TreeView沒有顯示任何資訊,然后點擊一下TreeView就提示
點擊確定之后,就指向上面紅色那行。。。。
求解釋
uj5u.com熱心網友回復:
TreeView沒有顯示任何資訊,TTreeNode * aNode=TreeView1->Selected;
此時 aNode = NULL 再就是你哪一行 aNode->Text 當然參考了一個空指標
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/110069.html
標籤:基礎類
下一篇:人臉識別
