学院首页>网络编程>ASP.NET>透过vs.net数据窗体向导看Ado.net

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

作者: 来源: 添加时间:2006-5-21 19:59:26
 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();

第 3 页,共 4 页 [1] [2] [3] [4]
站内搜索