DBGird添加数据刷新问题

NothingSky 2006-05-18 02:56:22
procedure TForm1.Buttom1Clicl(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('insert into 图书');
ADOQuery1.SQL.Add('(名称)');
ADOQuery1.SQL.Add('Values('''+Edit1.Text+''');');
ADOQuery1.ExecSQL;
end;

名称为主键
可以把Edit1里的图书名称添加进图书表中名称列
但是加进去的时候DBGird不显示[DBGird连的是图书表]
我加个Button2想用来刷新DBGird内容
写了
ADOQuery1.Close;
ADOQuery1.Open;
或者
ADOQuery1.Active:=False;
ADOQuery1.Active:=True;
用来刷新

一刷它就说XXXXXXXXXX'违反了PRIMARY KEY 约束 'PK_图书'。
不能在对象'图书'中插入重复键。

可是我直接用Button1一个个加是没问题的
查看SQL里也有
就是DBGird里不会自动刷新
要重新运行程序DBGird才能显示新添加的图书名称

到底是那里错了呢?
是刷新语句错了
还是本身SQL表设计就有问题呢?





...全文
223 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ylsl917 2006-08-15
  • 打赏
  • 举报
回复
znssc2000() 我的方法跟你的一样
可是还是跟楼主的情况一样!!!!!!
我的表没设主键
znssc2000 2006-05-20
  • 打赏
  • 举报
回复
用两个ADOQuery
DBGird连ADOQuery1
SQL select * from 图书

ADOQuery2
SQL不填
procedure TForm1.Buttom1Click(Sender: TObject);
begin
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('insert into 图书');
ADOQuery2.SQL.Add('(名称)');
ADOQuery2.SQL.Add('Values('''+Edit1.Text+''');');
ADOQuery2.ExecSQL;
ADOQuery1.Active:=False;
ADOQuery1.Active:=True;
end;
Arvin2003 2006-05-18
  • 打赏
  • 举报
回复
这种人的帖不要回,解决了也不拿出来共享一下!
andyzhou1101 2006-05-18
  • 打赏
  • 举报
回复
你的主键设的有问题
是不是没有自动加你啊


-----------------------------------
错了


你的主键设的有问题
是不是没有自动加1啊
andyzhou1101 2006-05-18
  • 打赏
  • 举报
回复
你的主键设的有问题
是不是没有自动加你啊
rock8283 2006-05-18
  • 打赏
  • 举报
回复
看看你的表是否有外键约束
ggjj2006 2006-05-18
  • 打赏
  • 举报
回复
dbgrid1.Refresh;试试
NothingSky 2006-05-18
  • 打赏
  • 举报
回复
ok,问题解决了
NothingSky 2006-05-18
  • 打赏
  • 举报
回复
应该怎么设置自动加1呢?

2,495

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧