C++Builder 程序员博客
5 Aug
设置了DataSource,DataSource1也连接了Table
就是DBList中没有显示数据
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();
}