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

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

 this.editCategoryName.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.objMyDataSet, "Categories.CategoryName"));

  上面一段代码把数据表的列绑定到了TextBox的Text属性上。

  数据的多值绑定如下:

grdProducts.SetDataBinding(objMyDataSet, "Categories.CategoryProductRel");

  可见通过关系绑定数据相当方便。

  四.数据浏览

  这里通过BindingContext对象的索引得到BindingManagerBase实例,而BindingManagerBase.Position就是我们需要的,通过Position来显示某一行的数据记录。

  例如下一条:

 this.BindingContext[objMyDataSet,"Categories"].Position = (this.BindingContext[objMyDataSet,"Categories"].Position + 1);

  最后一条:

 this.BindingContext[objMyDataSet,"Categories"].Position = (this.objMyDataSet.Tables["Categories"].Rows.Count - 1);

  另外调用PositionChanged()方法来改变导航按钮之间的索引显示。

  五.数据编辑

  从添加方法中我们可以看到下面代码:

// 清除当前编辑内容

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

  经常有人在csdn上提问为什么在编辑DataGrid或TextBox的时候,只有当编辑框失去焦点的时候才会被保存。要实现不改变焦点就保存可以通过上面代码实现。

  相对应的取消如下:

 this.BindingContext[objMyDataSet,"Categories"].CancelCurrentEdit();

  删除数据的代码如下:

this.BindingContext[objMyDataSet,"Categories"].RemoveAt(this.BindingContext[objMyDataSet,"Categories"].Position);

  看到上面代码发现原来数据不是真正的在数据源删除,不过我们开发的时候可能用的更多的是DataRow的Delete()方法,这样能够提交数据更新到数据源。

  六.数据更新

  向导生成的代码如下:

 

 public void UpdateDataSet()

  {

  // 创建一个新数据集来保存对主数据集所做的更改。

  WindowsApplication1.MyDataSet objDataSetChanges = new WindowsApplication1.MyDataSet();

  // 停止当前的任何编辑。

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

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


相关文章

    无相关信息

文章评论

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

300x250广告位招租