怎么让listbox增加adoquery1中的name列记录。(100分)

  • 主题发起人 主题发起人 yunxi126
  • 开始时间 开始时间
Y

yunxi126

Unregistered / Unconfirmed
GUEST, unregistred user!
怎么让listview增加adoquery1中的记录。(不要用循环,然后一个adoquery1.next)
 
[red]不要用循环,然后一个adoquery1.next[/red]还有其他方法吗?
 
用第三方控件也行啊
好像是datacombobox吧
 
内容很多么,导出到文件,在读入listview
 
为什么不用循环呢,又不会很慢(数据量不大的情况下)
用hityou的方法也可以
 
不用循环?? 为什么不用?怕效率低?
你可以先listview.item.BeginUpdate;
循环结束后listview.item.EndUpdate;

如果不用的话...标准控件只能使用dbgrid了
 
我要双击里面的一个内容然后加到memo里面去memo再field到adoquery中(dbgrideh中的一个字段)。 用adoquery1.next 不行。除了找到一个可以恢复到原始位置的方法。类似listbox的都行不过dblistbox 类型的一定不行的。因为dblistbox一改变,adoquery。也就移走了。
 
还有一种方法。就是获取dbgrideh的一个字段的值,不要用循环做。
 
沉了,自已顶一下。
 
汗........虽然还不清楚你到底要怎么做.......不过.........

你显示adoquery里的东西到listbox中应该是先做的吧,在你都显示完了以后才会双击listbox
这时你在双击的时候应该根据选的哪一行,将adoquery也定位到对应的那条记录啊

不知道下面的代码能不能帮你
//添加进listbox
procedure TForm1.Button1Click(Sender: TObject);
var
bookmark:tbookmark;
begin
ADOQuery1.First;
while not ADOQuery1.Eof do begin
bookmark:=ADOQuery1.GetBookmark;
listbox1.Items.AddObject(ADOQuery1.Fields[1].AsString,tobject(bookmark));
ADOQuery1.Next;
end;
end;

procedure TForm1.ListBox1DblClick(Sender: TObject);
begin//定位到响应记录
adoquery1.GotoBookmark(tbookmark(listbox1.Items.Objects[listbox1.ItemIndex]));
end;
 
向listbox1加记录的时候.adoquery1所指向的的记录不能移动.
 
所以不能用循环.除了有个方法能让他回到加记录前所定位的记录.
还有不要listbox定位到响应记录
 
bookmark就是定位的,你改改上面的代码就行了
procedure TForm1.Button1Click(Sender: TObject);
var
bookmark:tbookmark;
begin
bookmark:=ADOQuery1.GetBookmark;
ADOQuery1.First;
while not ADOQuery1.Eof do begin
listbox1.Items.Add(ADOQuery1.Fields[1].AsString);
ADOQuery1.Next;
end;
adoquery1.GotoBookmark(bookmark);
end;
DBCLICK那个不要就行了
 
多人接受答案了。
 
搞定了。用两个ado分开,搞定
 
后退
顶部