设置了DataSource,DataSource1也连接了Table
就是DBList中没有显示数据

C/C++ code
qry->Close(); qry->SQL->Clear(); qry->SQL->Add("select description from userTest"); qry->Open(); while(!qry->Eof) { DBListBox1->Items->Add(qry->Fields->Fields[0]->AsString); qry->Next(); }

一个DBListBox只能显示一个字段中的数据。

楼上的正解,需要手动加进去的.

原来这样,那和TList有什么区别?都需要手动加。。。
还有假如手动加进去了,选择某个记录是不是记录指针就指到数据库的那条记录了呢?

上面写错了,是TListBox

简单的区别就是dblistbox是和数据库相联系的,你可以为它设置一个表和字段,这样就可以关联到数据库中的数据了,比如当你给dblistbox赋值了后,选中其中一项,那么就等于指针指向了这条记录(如果你有dbgrid连接到同样的表的话,就可以看到这个dbgrid的记录指针在移动),而listbox是没有这个特性的,顶多可以把数据表的值付给它,但之后就完全跟数据库没有关系了.

那DBGrid只显示一个字段也就等于DBListBox
而且还没DBListBox那么麻烦

是啊 DBListBox只能显示一个字段,显示的字段多了很麻烦的。用DBGrid多方便啊。

ADOTable1->Open();
  ADOTable1->First();
  while(!ADOTable1->Eof){
  //以添加Name这列为例
  DBListBox1->Items->Append(ADOTable1->FieldByName("Name")->AsString) ;
  //或
  //DBListBox1->Items->Add(qry->Fields->Fields[0]->AsString);
  ADOTable1->Next();
  }