当知道了某样知识之后,就会发现其实什么都不知道
一直以来在Form上的TextBox要显示数据库内容,通常就是直接赋值。看了http://www.15seconds.com/issue/040908.htm上讲的要做对应类,现在来说,ORM没什么做的特别好的,所以这么做还是有些累。http://tech.ccidnet.com/pub/article/c1138_a9879_p1.html里面介绍也只是单向绑定,而且实现的不是很好。
于是就想直接将TextBox绑定到DataSet上。就做了下面的例子,用的是pubs库中authors表:
上面的是单向绑定,就是说,也只能显示,不能更新回来。那要更新回来怎么办?我试了用TextChange事件。在Form_Load中间加上:
然后事件处理里面,加上
然后好了,就可以同步更新DataSet了。然后呢,想做的好,干脆派生一个TextBox,加一个DataSource用来放数据集, DataMember属性用来放数据表加字段,封装更新的内容。(代码懒得写了)
posted on 2004-10-10 13:45 什么都不知道 阅读(3214) 评论(2) 编辑 收藏 网摘 所属分类: C#开发
this.BindingContext[dataSet,tableName].EndCurrentEdit(); 这样就可以了吧? 回复 引用
关于TextBox的数据绑定后更新。 操作:这样更简单操作,在写入数据库之前,要调用,DATAROW.ENDEDIT(); 原因:绑定数据后,当前数据行处于编辑状态(绑定的时候,系统会自动对当前的DATAROW,调用BEGINEDIT()),所以你必须结束编辑。 你还可以做这样一个实验,你用代码修改一下DATAROW的值,你会发现TEXTBOX里的值同样不会变,道理是一样的,并不是单向绑定还是双向绑定,只是因为你修改的值,没有通过ENDEDIT推入到DATATABLE里,所以rowstate也谈不上变化。 回复 引用
Powered by: 博客园 Copyright © 什么都不知道