Delphi 数据库网格未及时刷新

6yoyoihd  于 2023-11-18  发布在  其他
关注(0)|答案(1)|浏览(126)

我知道我很笨,但我不明白为什么我的数据库网格不能及时刷新。我创建了一个数据库来保护一些信息,并创建了一个表单,它可以将项目保存到数据库中。为了测试它是否正常工作,我添加了一个按钮来执行我的过程“刷新”。我的问题是,当按钮被点击时,它不能刷新我的数据库网格,但是当我点击了很多次的时候。我是新来的数据库,所以请发发慈悲。

`//Unit Form1

procedure TForm1.Refresh;
begin
        ADOQuery1.SQL.Clear;
        ADOQuery1.SQL.Add('SELECT ID, Name, size, amount FROM ITEMS');
        ADOQuery1.Open;
        DataSource1.DataSet.Refresh;
        DataSource1.DataSet.Open;
        ADOQuery1.Active:= false;
        ADOQuery1.Active:= true;
        DBGrid1.DataSource.DataSet.Refresh;
        DBGrid1.DataSource.DataSet.Open;
end;

//Unit Form2

procedure TForm2.btnSafeClick(Sender: TObject);
begin
try
    Form1.Refresh;
    ADOQuery1.SQL.Text:='INSERT INTO ITEMS(name, Amount, description, size, IMGLINK) VALUES (:CT, :SZ, :NA, DS:)';
    ADOQuery1.Parameters.ParamByName('NA').Value:= txtName.Text;
    ADOQuery1.Parameters.ParamByName('CT').Value:= strtoint(lblCT.caption);
    ADOQuery1.Parameters.ParamByName('DS').Value:= txtDescription.Text;
    ADOQuery1.Parameters.ParamByName('SZ').Value:= strtoint(cbSize.Text);
finally
    ADOQuery1.ExecSQL;
    Self.Close;
end;`

字符串

4urapxun

4urapxun1#

经过大量的研究,我找到了一个解决方案。我的TObjects我用来写入数据,是正常的编辑。我现在把它们改为DBedit,并给他们每个数据的列,数据源设置为我的查询。为了在网格中添加一些东西,我只是写了query.insert来插入一个空数据集,然后我展示了我的form2来写入DBedits。

相关问题