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

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

通过加载按钮数据库中的相关数据会被填充到数据集。执行的LoadDataSet()方法的过程如下:

  使用DataAdatpter.Fill()方法填充数据到临时的一个数据集,如果操作成功,将合并这个临时数据集到原有的数据集,DataGrid通过表关系绑定子表。

// 尝试填充临时数据集。

  this.FillDataSet(objDataSetTemp);

  grdProducts.DataSource = null;

  // 清空数据集中的旧记录。

  objMyDataSet.Clear();

  // 将记录合并到主数据集中。

  objMyDataSet.Merge(objDataSetTemp);

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

  在数据填充的方法中我们注意到

 dataSet.EnforceConstraints = false;

  这一步会对数据填充效率会有所提高。

  另外还有一个细节就是执行两个以上DataAdapter的数据访问方法时显式打开关闭数据连接效率会比较高。因为在执行DataAdapter的数据更新方法前和方法后数据连接Connection实例的状态不会改变。如果下面代码。

//this.oleDbConnection1.Open();

  this.oleDbDataAdapter1.Fill(dataSet);

  this.oleDbDataAdapter2.Fill(dataSet);

  执行之前Connection的状态是关闭的,那可想而知这一过程会执行两次打开连接关闭连接。

  其实一次就够。

  为了数据的严密性,填充完数据后不要忘了加上下面代码,

 // 重新打开约束检查。

  dataSet.EnforceConstraints = true;

  如果是直读那就无所谓了。

  有了数据填充那就来看数据的单值绑定和多值绑定。

  三.数据绑定

  数据的单值绑定如下:

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

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


相关文章

    无相关信息

文章评论

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

300x250广告位招租