我在窗体中用了DBGrid和ADOTable控件,我希望在DBGrid控件上修改数据后,调用
ADOTable的refresh方法刷新一下数据库,但是每次程序运行到此处就出现如下错误:
Project MyPrj.exe raised exception clas EOLeException with message
'缺少更新或刷新的键列信息'.Process Stopped.
ADOTable的refresh方法刷新一下数据库,但是每次程序运行到此处就出现如下错误:
Project MyPrj.exe raised exception clas EOLeException with message
'缺少更新或刷新的键列信息'.Process Stopped.
AdoTable.Open();试试
2、没有必要不要使用Refresh,因为它效率太差了,通过
ADOTable.Close;
ADOTable.Open;
//然后根据需要是否返回到指定行
ADOTable.Locate();
//或者
ADOTable.RecNo:=X;
我试过了,但是我在DBrid上改参数值,虽然单击“ 保存”按钮没问题,可是数据库中的数据没变呀。
你们说我是不是哪个控件的参数设置的有问题呀。
我也是过在DBGrid上修改数据后,然后ADOTable.refresh,还可以,不过修改DBGrid单元上的数据使用DBGrid自带的下拉列表实现。
问题是我现在在DBGrid上修改数据是直接在单元上输入。
open;
用AdoQuery比较好
你说我运行时是在DBGrid的单元中输入的,我只在DBGrid的onkeypressdown事件中加入了只能输入数字的判断,我应该把ADOTable.post放在哪儿?
Post方法是什么意思?
2、不要通过Refresh保存,通过Post;
3、通过Close然后Open刷新数据比ReFresh不仅效率高而且极少出错!
并用 adoquery.requery 来刷新数据。