要实现在一张Table中找出两两不相同的记录,如果有相同的只要其中的一个,最后将其存放到ComboBox中,问如何实现?
我的思路,首先先在COMBOBOX中显示第一条记录,然后再用数据库的记录和它比较,如果相同就不再显示在COMBOBOX中,如果不相同就显示,下面是我的代码,代码只能比较第一条记录的,其它的不能比较,期待高手出现 procedure TForm1.FormCreate(Sender: TObject);
var
i,s:integer;
begin
s:=0;
combobox1.Items.Add(adotable1.FieldByName('name').AsString);
for i:=0 to s do
begin
adotable1.First;
while not adotable1.Eof do
begin
if adotable1.FieldByName('name').AsString<>combobox1.Items.Strings[i] then
begin
combobox1.Items.Add(adotable1.FieldByName('name').AsString);
s:=s+1;
end;adotable1.Next;
end;
end;
end;
我的思路,首先先在COMBOBOX中显示第一条记录,然后再用数据库的记录和它比较,如果相同就不再显示在COMBOBOX中,如果不相同就显示,下面是我的代码,代码只能比较第一条记录的,其它的不能比较,期待高手出现 procedure TForm1.FormCreate(Sender: TObject);
var
i,s:integer;
begin
s:=0;
combobox1.Items.Add(adotable1.FieldByName('name').AsString);
for i:=0 to s do
begin
adotable1.First;
while not adotable1.Eof do
begin
if adotable1.FieldByName('name').AsString<>combobox1.Items.Strings[i] then
begin
combobox1.Items.Add(adotable1.FieldByName('name').AsString);
s:=s+1;
end;adotable1.Next;
end;
end;
end;
解决方案 »
- 怎样把Excel的数据导入SQL数据表(在客户机上操作)
- delphi的汉字编码问题.'编号'转换为#32534#21495
- delphi操作sqlserver如何实现每页只显示50条或者100条这种分页的功能?
- 如何创建ini
- delphi如何获得某一个进程的状态?急需!!帮忙
- delphi 里如何在一个单元里写相互关联的类
- 怎样在delphi中用代码判断MS-SQL数据库中是否存在同名的临时表
- 大家帮忙告诉我在delphi中调用另一个可执行程序怎么写?
- INI文件
- 关于一次在dbgrid控件中删除n条数据的问题。
- ★★乱散100分啦!★★喜欢用yahoo通的朋友近来报道啊!不管是初学者还是大虾都来吧!
- 请问画二维做标图用什么控件好?
用adoquery, select distinct name from table就可以了
如果你一定要写循环判定也可以procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
flag:boolean;
begin
s:=0;
combobox1.Items.Add(adotable1.FieldByName('name').AsString);
adotable1.First;
while not adotable1.Eof do
begin
flag:=false;
for i:=0 to combobox1.item.Count-1 do
begin
if adotable1.FieldByName('name').AsString<>combobox1.Items.Strings[i] then
begin
flag := true;
end;
if not flag then combobox1.Items.Add(adotable1.FieldByName ('name').AsString);
adotable1.Next;
end;
end;
end;
niat97222(Freeman),那应该怎么写啊
其实不用这么麻烦,用combobox1.Items.IndexOf(返回-1表示不在列表中)来判断就行了:
procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
begin
adotable1.First;
while not adotable1.Eof do
begin
if combobox1.Items.IndexOf(adotable1.FieldByName('name').AsString) = -1 then
combobox1.Items.Add(adotable1.FieldByName('name').AsString);
adotable1.Next;
end;
end;
sysu(死树) OK 接分