我用一个textBox绑定数据,问题是:1、 textBox在更改值后,一定要在失去焦点后,才能更新内存数据源(如:Ds)吗? 或者是有其它的事件,是自动更新还是要写代码更新数据源(Ds)?2、如果在内存数据源(Ds)已更改了的情况下,为什么不能就使用Update更新数据库的数据,还要加一个AcceptChange,用两个有什么意义,它们两个到底谁干什么事。 3、更改textBox值后,就已经更改了Ds的数据(通过访问Ds.tables["tablename"].[x][y]),但在我调用: Update ,Acceptchange后,sql数据库根本没有更新, 而我给Ds.tables["tablename"].[x][y] 赋上值后,update,acceptchange后,sql数据库更新了。实在太迷惑了,请指教!!!
解决方案 »
- 【俺又来啦,嘻嘻】求教VS 2005如何封装dll(给链接也行!!但一定要具体)
- -----------------------------------------→>水晶报表问题
- vs2005 提示一个方法时enter只出来一个方法名而没有括号..
- vs2005 html中的form如果不添写NAME和ID属性默认的名称是什么?
- 托盘程序开机自动启动问题!! 在线等.....
- 关于TextBox控件里显示文本的问题
- 装了vs2005后很多网页打开说找不到页面,删掉vs2005后那些网站又可以运行了(如csdn!),怎么会这样?
- 如何实现对用户自定义控件的键盘操作?
- 求教!项目转折点!
- c#中多线程同步问题
- 与数组元素比较.请帮帮忙.
- 求个正则表达式的问题
(InsertCommand,UpdateCommand,DeleteCommand)。因此调用DataAdapter.Update方法应该是在
调用 AcceptChanges 之前。
因为调用 AcceptChanges 时,任何仍处于编辑模式的 DataRow 对象将成功结束其编辑。DataRowState也会随之更改:所有状态为 Added 和 Modified 的行的状态都变为 Unchanged;状态为 Deleted 的行则被移除。
而使用 DataAdapter.Update 方法更新 DataSet 之后,通常会对 DataTable调用 AcceptChanges 方法。
2.fangxinggood(JustACoder) 说的很对,如果在Update之前调用了AcceptChange,那么数据库不会做任何更新,因为RowState都为Unchanged
3.同2
http://blog.csdn.net/zhzuo/archive/2005/01/03/238273.aspx
http://blog.csdn.net/zhzuo/archive/2004/08/06/67016.aspx
http://blog.csdn.net/zhzuo/archive/2004/08/06/67037.aspx
DataSet好比内存里的数据库镜像,更新Update方法,更新DataSet,实际上就是将
DataSet与数据库数据同步,就是更新数据库啦。AcceptChange方法实际就是告诉DataAdapter,我这里的数据已经跟数据库同步啦,
不用再更新了。