收藏 (0) +1 (0) +1 (0) +1
收藏成功查看收藏>>

正在阅读:透过vs.net数据窗体向导看Ado.net透过vs.net数据窗体向导看Ado.net

2005-01-04 17:27 出处: 作者:zhzuo 责任编辑:linjixiong


  this.BindingContext[objMyDataSet,"Products"].EndCurrentEdit();

  // 获取对主数据集所做的更改。

  objDataSetChanges = ((WindowsApplication1.MyDataSet)(objMyDataSet.GetChanges()));

  // 检查是否做了任何更改。

  if ((objDataSetChanges != null))

  {

  try

  {

  // 需要做一些更改,所以尝试通过调用 update 方法

  // 和传递数据集以及任何参数来更新数据源。

  this.UpdateDataSource(objDataSetChanges);

  objMyDataSet.Merge(objDataSetChanges);

  objMyDataSet.AcceptChanges();

  }

  catch (System.Exception eUpdate)

  {

  // 在此处添加错误处理代码。

  throw eUpdate;

  }

  // 添加代码以检查返回的数据集中是否有任何可能已被

  // 推入到行对象错误中的错误。

  }

  }

  更新过程很经典,通过获取修改过的数据集更新子集提交到数据源完成更新动作,接着合并子集到原有数据集,顺便提一下,合并的过程是基于数据表主键来判断的。通过调用DataSet.AcceptChanges()方法提交自加载此 DataSet 或上次调用 AcceptChanges 以来对 DataSet 进行的所有更改。对应的就是Data.RejectChanges();回滚自创建 DataSet 以来或上次调用 DataSet.AcceptChanges 以来对 DataSet 进行的所有更改。

  七.补充

  对于数据的更新需要视程序环境而定,不能都通过获取子集再合并的方法,具体请看ADO.NET中的多数据表操作浅析—修改一文。也有人问起怎样实现这样的功能:在数据库中的某一个字段数据为0或1,而在程序显示上想让它显示为是或否,这里我认为最好不要在Sql语句上做文章,代替的方法就是使用Binding对象的Format 事件和Parse事件。Binding.Format 事件,当将某控件的属性绑定到某个数据值时发生。

  Binding.Parse 事件,在数据绑定控件的值更改时发生。还有可以通过BindingManagerBase.PositionChanged事件来设置各个按钮的状态。需要具体的例子可以看MSDN或《Ado.net Core Reference》一书。另外,使用Try{}catch (System.Exception ex){}还是要视情况而定,不能一味的全都通过Exception基类把什么都扑捉了,如果知道有可能会抛出什么类型的异常,还是越具体越好,造成的反面效果就是要写更多的代码。具体为什么要这么做可以看《Applied Microsoft.NET Framework Programming》一书。

热点推荐: 
教你如何成为一名Java初级程序员变态级JAVA程序员面试32问(附答案)
将Asp.Net页面输出到EXCEL里去读书笔记:程序员的个人性格
Java编程学习:自己DIY一个JSP日历Java 的破解和反破解之道
网页编程必看:XML文法分析设计模式的有趣解释-追MM

察看评论详细内容 我要发表评论
作者笔名简短内容 发表时间
:
键盘也能翻页,试试“← →”键

相关文章

关注我们

最新资讯离线随时看 聊天吐槽赢奖品
手机访问回到顶部