我知道我很笨,但我不明白为什么我的数据库网格不能及时刷新。我创建了一个数据库来保护一些信息,并创建了一个表单,它可以将项目保存到数据库中。为了测试它是否正常工作,我添加了一个按钮来执行我的过程“刷新”。我的问题是,当按钮被点击时,它不能刷新我的数据库网格,但是当我点击了很多次的时候。我是新来的数据库,所以请发发慈悲。
`//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;`
字符串
1条答案
按热度按时间4urapxun1#
经过大量的研究,我找到了一个解决方案。我的
TObjects
我用来写入数据,是正常的编辑。我现在把它们改为DBedit,并给他们每个数据的列,数据源设置为我的查询。为了在网格中添加一些东西,我只是写了query.insert来插入一个空数据集,然后我展示了我的form2来写入DBedits。