透过vs.net数据窗体向导看Ado.net

时间:2007-01-21 14:08:14   来源:  作者:  点击:次  出处:技术无忧
关键字:透过

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 事件,当将某控件的属性绑定到某个数据值时发生。

你有email邮箱吗?经常收到垃圾邮件而烦吗?立即使用邮箱LOGO在线制作酷Email logo图片


相关文章

    无相关信息

文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面

300x250广告位招租