我有一个数据库,里面有'用户表'。在这个表格中,有列包含用户信息(网站,尼克,jeton,邮件,sifre)。我正在尝试基于信用系统制定计划。任何用户运行该程序,比如,如果用户信用等于列表框中的站点数(我的意思是线数)用户站点将出现在列表框中。否则,它不会出现。如何在任何情况下将列的值提取到列表框?
在数据库中,“credits”列中的值必须等于listbox中的行数。例如,如果任何用户的信用值为4,并且列表框中有5行,则用户站点将不会被添加到列表框中。但如果用户的信用值是5或更高,他/她的网站将被添加(列出)在列表框中。
uyeler =表
缺口 =用户名栏。
网站 =用户网站名称列。
jeton =用户信用栏。
邮件 =用户邮件列。
sifre =用户密码栏。
我试过这些;
MyQuery1.Close;
MyQuery1.SQL.Text :='SELECT jeton, site FROM uyeler WHERE jeton > 0 ORDER BY site';
MyQuery1.Open;
ListBox1.Items.Clear;
If (MyQuery1.IsEmpty) or (MyQuery1.FieldByName('jeton').AsString > IntToStr(Listbox1.Items.Count)) Then
Begin
MessageDlg('warning: you have not credit!', mtWarning,[mbOK],0)
End
Else
Begin
While not MyQuery1.Eof do
Begin
ListBox1.Items.Add(MyQuery1.Fields[1].AsString);
MyQuery1.Next;
end;
MyQuery1.Close;
End;
> *“如果任何用户的信用值是4,并且有5条线在列表框中,用户的网站将不会被添加到列表框。但是,如果用户的信用值是4或更低时,他/她的网站将被添加(列出)在列表框中“*>这没有意义,您需要的结果与* 4或更低的*和*'4'*不同。 – 2012-08-09 17:25:31
@SertacAkyuz,Pardon,我现在编辑过。 – Ankara 2012-08-09 18:41:29
我很难理解,但无论如何,对于初学者来说,它看起来像对特定用户的学分感兴趣,但是您的select语句将检索所有* jeton> 0的记录。您可能需要选择该用户的记录(其中(nick = xyz)和(jeton> 0)),或者在查询中找到该特定用户的记录。我建议您将DBGrid附加到您的查询中,以便确保您的查询正在检索您打算的记录。我可能会误解。 – 2012-08-09 20:13:24