如何从字段中获取值并分配给TStringList?

时间:2016-12-25 12:57:54

标签: mysql delphi delphi-xe tstringlist tmemo

如何从下面的图片中获取所有用户名值,并将其转换为TStringList,字符串或TMemo

enter image description here

我尝试了以下代码,但它没有用。

with q3 do
  var txResul:stringlist
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT*FROM user');
    Open;
    Next;
  end;
  txtResult.Add(q1.FieldByName('username').AsString);

1 个答案:

答案 0 :(得分:6)

假设您的屏幕截图是您调用的数据集,请执行以下操作:

procedure GetUserNames(DataSet : TDataSet; StringList : TStringList);
var
  Field : TField;
begin
  Field := DataSet.FieldByName('username');
  StringList.BeginUpdate;      
  try
    DataSet.DisableControls;
    try
      DataSet.First;
      while not DataSet.Eof do begin
        StringList.Add(Field.AsString);
        DataSet.Next;
      end;
    finally
      DataSet.EnableControls;
    end; 
  finally
    StringList.EndUpdate;
  end;
end;

您可以像这样使用它

procedure TForm1.GetUsers;
var
  TL : StringList;
begin
  TL := StringList.Create;
  try
    GetUserNames(MyTable, TL);
    Memo1.Lines.Text := TL.Text;
  finally
    TL.Free;
  end;
end;

顺便说一句,如果您将GetUserNames的第二个参数更改为TStrings,就像在GetUserNames(DataSet : TDataSet; Strings : TStrings)中一样,您可以直接将Memo1.Lines传递给它。