最后9分,如何将dbedit的内容由程序指定并更新到记录集上. 最后9分,如何将dbedit的内容由程序指定并更新到记录集上. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ???不明白 你是说把一个表的某一记录的某一字段换成EDIT里的东西 ? dbedit的内容手工输入,数据可以在记录在数据库里。但是在程序中用dbedit->Edit赋值,数据库记录并未按设想的改变! 好吧!是我说的不大清楚.关于Dbedit的问题. 首先说明的是直接写sql语句插入的程序我会写.但种种原因,我觉得采用控件控制比较合适.所以请不要在本帖讨论直接写sql语句插入的问题. sql server数据库的一个表(Table1),有三个字段(Field1,Field2,Field3),我在程序设计窗体上放一个ADOQuery,DataSource,dbnavigator,两个dbedit.两个DbEdit对应Field1,Field2大家知道 点击dbnavigator的填加按钮时,当在dbedit1,dbedit2里面输入数据,按dbedit的保存按钮后.输入的dbedit1,dbedit2的内容就保存在相应的表的字段中.问题是: 在上面的过程中,如何同时让相应记录的Field3字段插入不需要用户输入的指定的内容(比如,当前系统日期)? 我的做法是: 在窗体上放另一个隐藏的dbedit3,对应Field3,因为是添加,所以在ADOQuery的afterscoll事件里面判断当前记录的field3是否为空,若是空,则将dbedit3的text赋值.但结果是,点击dbnavigater的保存按钮后,Field3的内容依然为空.(大家帮看看怎么回事?我不信没有人用过这种方式!) 在论坛里,会看到有人说什么dbedit等数据感知控件不好用,但我认为,没有好不好用,只是会不会用的问题.如果会用,对于大量同类的数据库程序,在控件基础上操作将远比自己写代码实现节省大量的资源. DBEdit 对应的有DataSource和DataField 你所用的DBnaviGater 当你浏览数据时对应的你要隐藏的 DBEidt中的数据要改变的 如你要求如果你想插入当前时间你可以赋值给DBEdit3 DBEdit3.text:=DateToStr(Now); 当你要插入数据时必须最后Post; 呵呵,说到post,但是dbedit1,dbedit2却没有直接调用post啊! 另外,如果post可以解决问题,那么是怎么用,用在哪里呢? dbedit3.SetFocus;adotable1.Edit ;dbedit3.Text :='dfdfdfdbbbb';DBNavigator1.SetFocus ; 对了 这段代码应写在 adotablebeforepost事件里。 我也认为给dbedit3.text赋值的程序,不应该写在afterscroll()中,应该写在beforepost()中,而且不必用一个隐藏的dbedit,可以直接在adoquery的beforepost()事件中写入: adoquery.fields[2].value:=指定值;可以实现同样功能。 你可以这样子实现:在adoquery的beforepost中写:adoquery.fields[2].values:='dfdf';adoquery.post;基本同意 zhangheaaa(竹) 的意见,这样子肯定能够实现你想做的 你可以在beforepost事件里写如代码,adoquery.edit;adoquery.fieldbyname('你的Dbedit3对应的字段名').asstring := '你要的值'; 你的Field3对应的DBedit是不是没有与Datasource连接? 不过,我想:在adoquery的beforepost中写:adoquery.fields[2].values:='dfdf';adoquery.post;基本同意 zhangheaaa(竹) 的意见,这样子肯定能够实现你想做的的解决方法,会造成死循环。 确认Field3对应的DBedit有与Datasource连接.不管怎么说,还是等晚上回家测试后在看结果吧!请大家继续关注. 楼上的我刚才测试了一下,很不幸,一个都没成功.geyobing(银翼天使) 的在beforepost事件里写如代码,adoquery.edit;adoquery.fieldbyname('你的Dbedit3对应的字段名').asstring := '你要的值';和li_yan_woods(彦)在adoquery的beforepost中写:adoquery.fields[2].values:='dfdf';adoquery.post;的解决方法导致的后果是一样的,afterpost事件都没触发(程序中我让afterpost事件触发时显示相应信息,结果使用上面两种方法,都没显示信息),这说明post根本无法执行. IORILI(沒落的阿咎) 的在adoquery的beforepost中写dbedit3.SetFocus;adotable1.Edit ; dbedit3.Text :='dfdfdfdbbbb';DBNavigator1.SetFocus ;倒是可以执行,但field3的数据仍然没有插入。我都快崩溃了,怎么回事?呵呵。您不要急。后来我发现,我测试的字段3在sql server中设置的是自增型的,换个一般的测试后。发现geyobing(银翼天使) 的和IORILI(沒落的阿咎) 的方法可以了!而 zhangheaaa(竹) ( ) 信誉:100 2003-08-04 13:57:00 得分:0 我也认为给dbedit3.text赋值的程序,不应该写在afterscroll()中,应该写在beforepost()中,而且不必用一个隐藏的dbedit,可以直接在adoquery的beforepost()事件中写入: adoquery.fields[2].value:=指定值;可以实现同样功能。 的解决方法是最简单的。Edit也不必用的。谢谢大家。麻烦大家了。关于“自增加字段”,我的处理方法是修改库表结构,不使用自增加,在程序中进行字段的增加的控制。 再次谢谢大家。顺便请大家有空到我的网站www.downsource.net看看! Delphi怎么用PNG做支持Alpha通道的不规则窗口 关于启动窗体的问题。 我在使用TADOQuery出现的问题,求高手办忙分析一下!谢谢 非常简单的问题,快进来看看。 很急!在线等! 关于MediaPlayer中的trackbar滑块移动的问题,help me 如何在DbGrid的一列中添加一个Button控件?高分相赠! 我如何将数组转换为树 大家帮我看看这个如何转换的 怎么才能遍历注册表! 如何释放动态数组的内存? 求助:在SQL中如何设置子查询的参数?
我在程序设计窗体上放一个ADOQuery,DataSource,dbnavigator,两个dbedit.两个DbEdit对应Field1,Field2大家知道 点击dbnavigator的填加按钮时,当在dbedit1,dbedit2里面输入数据,按dbedit的保存按钮后.输入的dbedit1,dbedit2的内容就保存在相应的表的字段中.问题是:
在上面的过程中,如何同时让相应记录的Field3字段插入不需要用户输入的指定的内容(比如,当前系统日期)?
我的做法是:
在窗体上放另一个隐藏的dbedit3,对应Field3,因为是添加,所以在ADOQuery的afterscoll事件里面判断当前记录的field3是否为空,若是空,则将dbedit3的text赋值.但结果是,点击dbnavigater的保存按钮后,Field3的内容依然为空.(大家帮看看怎么回事?我不信没有人用过这种方式!) 在论坛里,会看到有人说什么dbedit等数据感知控件不好用,但我认为,没有好不好用,只是会不会用的问题.如果会用,对于大量同类的数据库程序,在控件基础上操作将远比自己写代码实现节省大量的资源.
你所用的DBnaviGater 当你浏览数据时对应的你要隐藏的 DBEidt中的数据要改变的
如你要求如果你想插入当前时间你可以赋值给DBEdit3
DBEdit3.text:=DateToStr(Now);
当你要插入数据时必须最后Post;
adotable1.Edit ;
dbedit3.Text :='dfdfdfdbbbb';
DBNavigator1.SetFocus ;
应该写在beforepost()中,
而且不必用一个隐藏的dbedit,
可以直接在adoquery的beforepost()事件中写入:
adoquery.fields[2].value:=指定值;
可以实现同样功能。
在adoquery的beforepost中写:
adoquery.fields[2].values:='dfdf';
adoquery.post;
基本同意 zhangheaaa(竹) 的意见,这样子肯定能够实现你想做的
adoquery.edit;
adoquery.fieldbyname('你的Dbedit3对应的字段名').asstring := '你要的值';
adoquery.fields[2].values:='dfdf';
adoquery.post;
基本同意 zhangheaaa(竹) 的意见,这样子肯定能够实现你想做的的解决方法,会造成死循环。
在beforepost事件里写如代码,
adoquery.edit;
adoquery.fieldbyname('你的Dbedit3对应的字段名').asstring := '你要的值';和li_yan_woods(彦)
在adoquery的beforepost中写:
adoquery.fields[2].values:='dfdf';
adoquery.post;
的解决方法导致的后果是一样的,afterpost事件都没触发(程序中我让afterpost事件触发时显示相应信息,结果使用上面两种方法,都没显示信息),这说明post根本无法执行.
IORILI(沒落的阿咎) 的
在adoquery的beforepost中写
dbedit3.SetFocus;
adotable1.Edit ;
dbedit3.Text :='dfdfdfdbbbb';
DBNavigator1.SetFocus ;倒是可以执行,但field3的数据仍然没有插入。
我都快崩溃了,怎么回事?呵呵。您不要急。后来我发现,我测试的字段3在sql server中设置的是自增型的,换个一般的测试后。发现geyobing(银翼天使) 的和IORILI(沒落的阿咎) 的方法可以了!而 zhangheaaa(竹) ( ) 信誉:100 2003-08-04 13:57:00 得分:0
我也认为给dbedit3.text赋值的程序,不应该写在afterscroll()中,
应该写在beforepost()中,
而且不必用一个隐藏的dbedit,
可以直接在adoquery的beforepost()事件中写入:
adoquery.fields[2].value:=指定值;
可以实现同样功能。
的解决方法是最简单的。Edit也不必用的。
谢谢大家。麻烦大家了。关于“自增加字段”,我的处理方法是修改库表结构,不使用自增加,在程序中进行字段的增加的控制。
再次谢谢大家。顺便请大家有空到我的网站www.downsource.net看看!