delphi 数据库查询显示问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi 数据库查询显示问题相关的知识,希望对你有一定的参考价值。

通过用户名查询用户的购买记录
使用自带的打印控件QuickRpt 显示数据库查询结果,为什么得到的结果是一样的?
现在情况是假如:用户购买记录有三次,应该每次是不同的.但是现在显示的是三次但三次的结果是一样的?
正常情况应该是用户有几次购买记录就显示几条购买记录而且每条记录是不同的.
begin
with ADOQuery1 do begin
ADOQuery1.close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select * From T_Powersell Where F_name =:F_name');
ADOQuery1.Parameters.ParamByName('F_name').Value := trim(edit1.Text);
AdoQuery1.Open;

QRLabel2.Caption :='User';
QRLabel7.Caption :=ADOQuery1.FieldValues ['F_name'];

QRLabel3.Caption :='Meter NO.';
QRLabel8.Caption :=ADOQuery1.FieldValues ['F_meterno'];

QRLabel4.Caption :='Customer NO.';
QRLabel9.Caption :=ADOQuery1.FieldValues ['F_custno'];

QRLabel5.Caption :='kWh';
QRLabel10.Caption :=ADOQuery1.FieldValues ['F_amount'];

QRLabel12.Caption :='Total Amount';
QRLabel13.Caption :=ADOQuery1.FieldValues ['F_total'];

QRLabel6.Caption :='Time & Date';
QRLabel11.Caption :=ADOQuery1.FieldValues ['F_time'];
QuickRep1.Preview;
end
end;
哪位帮我看看代码有什么问题吗?
想要的结果是通过查询用户名 得到用户的购买记录 有N次购买记录就显示N次再打印.
难道是不能用 QRLabel应该用 QREdit?

这应该是你的quickrep使用的问题!
你的QRlabel应该放到数据集控件上,你的QRLABEL应该是放到了REPORT TITLE上面吧。。

可能有点乱,因为很多年都不用这个控件了。。一般用fastreport..追问

我的QRlabel 是放在quickrep 控件上的 

追答

记得quickrep里有个报表头控件,只能显示一条,一般这里放一报表头、标题什么,然后还有报表列表控件,这里应该是显示查询结果,可以把结果一条条列出来,另外好像还有个报表尾,这里就是打印一些页码什么的。如果你把qrlabel放到头和尾上,无论你查出多少条,一次只能显示一条。

手头没有DELPHI,只能这样回答你。。

追问

你说的我知道.现在是可以显示很多条记录.但每条记录都是一样的?

追答

记忆太模糊了。大约有很多年没用QR了,QR里有个dataset属性是否设置?

追问

上面的代码有没有问题?这上QR控件我也是第一次用不熟!我看哈!dataset 属性有什么用?

追答

代码没看到有什么问题,不过不建议你用qrlabel,貌似有qr的dblabel控件。。连接到数据库上就OK了。。

参考技术A 改fastreport或者reportmachine吧
Qreport太单调了
应该是你的逐项数据没有对应到数据集追问

Qrepotr 就够用了啊!!!你的逐项数据没有对应到数据集 能详细说一下吗?

追答

Quickreport的dataset设置为你的ADOQuery就可以了

delphi sql查询

问一个比较白痴的问题,我要查询一个表然后需要把查询结果保存起来,应该怎么弄呢 比如我查这上海有几个区怎样把查询返回的结果保存起来 然后我在一个tree上显示?
可能看不懂我说的是啥 ,是这样的 比如我查出来了初三有5个班,那么我想把查询的结果显示到一个tree上 怎么把查询的结果一个一个取出来呢?

参考技术A 你可以新建一个表,把查询结果保存到新表中! 参考技术B 写一个for循环 从0到RecordCount-1
for i:=0 to RecordCount-1 do
begin
RecNo:=i+1;---->逐个提取记录
........显示
end;追问

是不是将查询结果保存到ClientDataSet里面然后从里面逐条取呢?怎样将结果保存到ClientDataSet里面呢?

追答

建立一个TADOQuery控件,将select出来的数据显示到TreeView上,RecNo记录提取个数的.........

以上是关于delphi 数据库查询显示问题的主要内容,如果未能解决你的问题,请参考以下文章

delphi sql查询

Delphi 数据库查询TdxDBTreeList记录不显示问题

在DELPHI中如何在dbgrid 显示查询数据

delphi sql查询结果小于1,转换成百分比后不显示小数点前面的0,比如0.1%,显示结果就是.1%.

delphi下的cxgrid的列值转换问题

怎样在delphi取 dbgrid的一列值来进行二次查询?