数据库类型:access; 表结构:id,name;使用ado连接。
id和name字段均不能为空也不能重复。
用dbgrid来输入记录,按button1添加,按button2保存,如果字段id和name为空或重复在按下button2时提示用户错误信息。请贴出源码,非常感谢!注:上次很多人提到在dataset的beforepost中实现,可是beforepost事件还没执行,系统就已提示出数据库的错误信息了。
id和name字段均不能为空也不能重复。
用dbgrid来输入记录,按button1添加,按button2保存,如果字段id和name为空或重复在按下button2时提示用户错误信息。请贴出源码,非常感谢!注:上次很多人提到在dataset的beforepost中实现,可是beforepost事件还没执行,系统就已提示出数据库的错误信息了。
try
Table.post;
except
Application.showmessage('提交出错,请检查!','提示',MB_OK OR MB_ICONERROR);
end;
你既然放了两个Button,那何不把你的窗口分成上下两半,上半部放DBGrid,下半部放一些Edit组件来输入新记录呢?这些Edit组件只有在按了“添加”时才可用,并且按下“添加”时将光标置进来。
按“保存”按钮的时候再判断这些数据是否能入数据表,如果为空(这是你的要求)则不能入表,否则就用SQL的INSERT语句插入新数据,至于重复记录的问题,应该放在数据表的设计里,定义你的那两个字段为唯一值就是了。将Insert语句放在TRY里面,若是重复值则insert肯定失败,这时给出提示就可以了。若新增成功,刷新一下DBGrid对应的数据即可。
这种事肯定你的数据表中已经存在这样非法,删除后重新执行
“注:上次很多人提到在dataset的beforepost中实现,可是beforepost事件还没执行,系统就已提示出数据库的错误信息了。”
的现象发生, hnhb(不死鸟) 说的对,建议你不要直接在DBGRID中编辑数据,如果你想坚持,请在DBGRID的OnColExit、OnColEnter、OnExit中加入控制代码吧