主题:为什么老是出现这样的报错!!!!
紫龙程序员
[专家分:0] 发布于 2007-09-22 17:09:00
各位大虾:
我在练习delphi的数据库小测试时按一下按钮就会跳出一条信息:dataset is not in edit or insert 。不知道我是哪里做错了咯,本人的理解是,没有处于编辑或插入状态,但是跟dataset有什么关系咯应该是dbgrid要处于编辑或插入状态才对吧!!!
回复列表 (共7个回复)
沙发
长尾兔 [专家分:3630] 发布于 2007-09-22 18:00:00
TDBGrid是“数据感知控件”,它的数据来自于TDataSet,它的更改也影响TDataSet。
DBGrid1.DataSource.DataSet.Edithttp;
//...
DBGrid1.DataSource.DataSet.Post;
板凳
紫龙程序员 [专家分:0] 发布于 2007-09-23 09:03:00
长尾兔仁兄:
不知你的这个语句应放在哪个位置,具体设置呵呵!!!!!
3 楼
长尾兔 [专家分:3630] 发布于 2007-09-26 14:25:00
哈哈不好意思写错了,把“http”这四个字符删掉。没在意,不好意思。
如果想继续回答下去,不知楼主的DataSet和DBGrid是如何设置的?
4 楼
紫龙程序员 [专家分:0] 发布于 2007-09-27 20:35:00
也没有怎么设置,只是dataset连接table1,而dbgrid1连接datasource1而已!!!!!!!!!!!!
5 楼
长尾兔 [专家分:3630] 发布于 2007-09-28 17:47:00
楼主:我在此地回答问题没人给我发薪水,全凭助人为乐、互相学习的信念。因此,不经常来论坛、即使来了有时也不爱回贴----请不要反感哦...况且即使我不回答,也自会有别人来帮你 (----关于!!!!!!!!!!!!)
关于本贴的问题,至少应该分成两个问题来解答:
1、“...跟dataset有什么关系咯应该是dbgrid要处于编辑或插入状态才对吧”
----错。1楼我第一句话既是对此的解释。
2、“按一下按钮就会跳出一条信息:dataset is not in edit or insert”
----解决办法还是一楼的两句代码。其中,修改字段值的语句,写在//...处。
至于这两句代码写在哪里?写在按钮的单击事件的处理过程里啊。也就是说,在对DataSet进行“写”的操作前,要把DataSet置为Edit或Insert状态,“写”完后要Post。
令我无法揣测您的问题的本来面目的是:这些又与DBGrid有何关系?无法亲眼看见您的程序,因此只能猜测您那里倒底发生了什么。一般情况下,既然你用的是Table+DBGrid的默认设置,如果你直接在DBGrid里修改数据并使DBGrid的当前行改变,那么与其关联的DataSet会自动执行Post操作的。而这与按钮又有什么关系?所以我猜测你的修改数据的代码是写在按钮里了,而不是在DBGrid里修改.....我说得自己也有点晕乎了,不好意思看不明白可以继续交流
6 楼
wt_yxs [专家分:50] 发布于 2007-09-29 15:24:00
非常明白,谢谢
7 楼
紫龙程序员 [专家分:0] 发布于 2007-10-16 21:05:00
非常感谢长尾兔仁兄的一番耐心教导,我懂了,呵呵!!!!!!!!!
是看懂了,还没有练习,马上就去练习咯!!!!
我来回复