关于在Delphi DBgrid 控件中编辑数据,保存到数据库相关 *** 作

关于在Delphi DBgrid 控件中编辑数据,保存到数据库相关 *** 作,第1张

DBGride的界面是与数据关联的,对它的任何输入 *** 作都要与实际数据库的数据关联,你不可能随意编辑它(特别是当数据库相关的若干表的增删改被定义了约束关系时更是如此),不是改点属性就解决问题的,不关联Datasource也不能使用它,这是没办法改变的。不过,你可以用另外的方式实现你的想法,只不过麻烦些,比如用TStringGrid或TListview(详细资料方式下),只是你自己需要做很多工作,数据的调入、字段、记录与表格的关联,数据同步,增删改 *** 作等。

只是,程序员一般不这么做,而是用其他简单些的方式实现,比如,添加、修改记录,d出单独窗口把数据用非数据库控件表现出来,让用户随意编辑,然后提交时再自己做检查(用户输入逻辑错误的话可以要求重输入)和转换,这样做能完全掌控用户的输入行为,保证数据录入的正确性。这两样如果直接在DBGrid上编辑,你将会有很多麻烦,单是纠正用户错误(避免引发异常和数据内部逻辑错误)就不好找机会,因为你想完全掌控的话要涉及很多事件处理,其间的逻辑时序关系很难找清,甚至未必能做好。而对删除和查询 *** 作,DBGrid一般没什么问题。因此,有经验的程序员可能会把DBGrid的ReadOnly设置为true。

dbgrid中的数据应该是绑定表的,所以 你在button1的事件中 将dbgrid1对应表的对应行的记录值插入dbgrid2对应的表就可以在dbgrid2中直接显示并可以修改了,button2按钮的事件处理dbgrid2对应表的保存方法就可以了。

控件:ADOQuery11、连数据库2、输入语句select * from 数据库的数据表名3、设置为TrueDataSource1连控件ADOQuery1Edit1//字段wordEdit2//字段passwordbutton1dbgrid//查看输入的内容代码:adoquery1.Insert

adoquery1.Fields[0].AsString //id

adoquery1.Fields[1].AsString:=edit1.Text//word

adoquery1.Fields[2].AsString:=edit2.Text//password

adoquery1.Post


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9642299.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存