procedure TForm1.FormCreate(Sender: TObject);
var
Titem:TListItem;
begin
with qry1 do
begin
qry1.Close;
qry1.SQL.Clear;
qry1.sql.Add('select * from Historys');
qry1.Open;
qry1.First;
lv1.Items.Clear;
while not eof do
begin
Titem:=lv1.Items.add;
Titem.Caption:=FieldByName('ID').Value;
Titem.SubItems.Add(FieldByName('Receiver').Value);
Titem.SubItems.Add(FieldByName('DateTime').Value);
Next;
end;
redt1.Lines.Clear;
end;end;
procedure TForm1.lv1Click(Sender: TObject);
begin
if lv1.Selected <> nil then
begin
with qry1 do
begin
qry1.Close;
qry1.SQL.Clear;
qry1.SQL.Add('select * from Historys where ID='+Quotedstr(lv1.Selected.Caption));
qry1.Open;
end;
edt1.Text:=lv1.Selected.Subitems[0];
edt2.Text:=lv1.Selected.SubItems[1];
end;
redt1.Lines.Text :=qry1.Fieldbyname('Content').AsString;
end;上面代码是一个ListView读取Access表里的内容(表有4项:ID(主键),Receiver,DateTime,Content)``ListView只读前面3项内容```然后根据选择ListView中每一行的数据``将选取数据的第1和第2列分别显示在2个Edit里面```并将对应数据的Content内容显示在一个RichEdit里面``` 上面程序运行时提示‘标准表达式中数据类型不匹配’ 麻烦知道的帮忙分析下原因
var
Titem:TListItem;
begin
with qry1 do
begin
qry1.Close;
qry1.SQL.Clear;
qry1.sql.Add('select * from Historys');
qry1.Open;
qry1.First;
lv1.Items.Clear;
while not eof do
begin
Titem:=lv1.Items.add;
Titem.Caption:=FieldByName('ID').Value;
Titem.SubItems.Add(FieldByName('Receiver').Value);
Titem.SubItems.Add(FieldByName('DateTime').Value);
Next;
end;
redt1.Lines.Clear;
end;end;
procedure TForm1.lv1Click(Sender: TObject);
begin
if lv1.Selected <> nil then
begin
with qry1 do
begin
qry1.Close;
qry1.SQL.Clear;
qry1.SQL.Add('select * from Historys where ID='+Quotedstr(lv1.Selected.Caption));
qry1.Open;
end;
edt1.Text:=lv1.Selected.Subitems[0];
edt2.Text:=lv1.Selected.SubItems[1];
end;
redt1.Lines.Text :=qry1.Fieldbyname('Content').AsString;
end;上面代码是一个ListView读取Access表里的内容(表有4项:ID(主键),Receiver,DateTime,Content)``ListView只读前面3项内容```然后根据选择ListView中每一行的数据``将选取数据的第1和第2列分别显示在2个Edit里面```并将对应数据的Content内容显示在一个RichEdit里面``` 上面程序运行时提示‘标准表达式中数据类型不匹配’ 麻烦知道的帮忙分析下原因
改为:
qry1.SQL.Add('select * from Historys where ID='+lv1.Selected.Caption);