JTable 本身有个 TableModel,我们的数据编辑之后会提交回 TableModel,我们在 stopCellEditing() 方法中打印一下日志来观察和了解这个方法的工作过程,文档上说这个方法被调用后返回 true 就表示编辑已经完成了,值回提交回 TableModel。
编辑完成之后我们可以去 TableModel 中拿到所有单元格的值。
DBGride的界面是与数据库关联的,对它的任何输入 *** 作都要与实际数据库的数据关联,你不可能随意编辑它(特别是当数据库相关的若干表的增删改被定义了约束关系时更是如此),不是改点属性就解决问题的,不关联Datasource也不能使用它,这是没办法改变的。不过,你可以用另外的方式实现你的想法,只不过麻烦些,比如用TStringGrid或TListview(详细资料方式下),只是你自己需要做很多工作,数据的调入、字段、记录与表格的关联,数据同步,增删改 *** 作等。
只是,程序员一般不这么做,而是用其他简单些的方式实现,比如,添加、修改记录,d出单独窗口把数据用非数据库控件表现出来,让用户随意编辑,然后提交时再自己做检查(用户输入逻辑错误的话可以要求重输入)和转换,这样做能完全掌控用户的输入行为,保证数据录入的正确性。这两样如果直接在DBGrid上编辑,你将会有很多麻烦,单是纠正用户错误(避免引发异常和数据内部逻辑错误)就不好找机会,因为你想完全掌控的话要涉及很多事件处理,其间的逻辑时序关系很难找清,甚至未必能做好。而对删除和查询 *** 作,DBGrid一般没什么问题。因此,有经验的程序员可能会把DBGrid的ReadOnly设置为true。
大致 *** 作过程这样:先将datagridiview与dt绑定(绑定后datagridview的数据变化,dt的数据也相应变化),在通过oledbdataadapter的update将dt写会数据库
如何绑定数据库
bindingsource bs = new bindingsource();
bsdatasource = dt ; //dt为你用OleDbDataAdapter da 填充的数据集
datagridview1datasource = bs;
用以上三句替换掉以下两句
DataView dv = new DataView(dt);
dataGridView1DataSource = dv;
使用update方法之前,要新建一个OleDbCommandBuilder
OleDbCommandBuilder comBuilder = new OleDbCommandBuilder(da);
//这句话放到" daFill(dt); "之后 , da为你建的OleDbDataAdapter
OleDbCommandBuilder的作用在于,自动生成用于协调对 dt(你用OleDbDataAdapter的fill方法填充数据集) 的更改与关联数据库的单表命令。这个貌似有点专业呀,不过通俗的讲究是OleDbCommandBuilder会记录下dt的数据的变化
使用update方法
daupdate(dt);
这句就放到 " dataGridView1Rows[0]Cells[0]Value = "2"; " 之后即可
不知道你理解了没有不理解可以给我留言
开档时有个自己选择档案什么的选项要勾上,然后选择自己保存的那个数据库档案名
2010的数据库编辑后不是覆盖原有数据库,而是把修改的数据保存为一个新的修改档案,要选择了自己保存的档案才有用
编辑不太好编辑,毕竟那个页面一点也不灵活
建议在文本上打好你要运行的东西,然后粘贴到sqlplus上
如果你粘贴不了,建议你用cmd模式进入sqlplus
至于保存
你create后自动就保存到数据库中了,不知道你说的保存是什么意思
执行的话,这个得看你写的存储过程和函数是什么样的了,不同的存储过程和函数执行的方式也有区别呀
以上就是关于Jtable如何保留编辑的内容,并把编辑的内容保存回数组或者数据库中全部的内容,包括:Jtable如何保留编辑的内容,并把编辑的内容保存回数组或者数据库中、关于在Delphi DBgrid 控件中编辑数据,保存到数据库相关 *** 作、编辑datagridview后如何保存至acces数据库 连接了access的一个表,然后进行了编辑,编辑后如何保存等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)