快速业务通道

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

作者 凌众技术 来源 互联网 浏览 发布时间 2012-01-14

在论坛上经常碰到有人问一些Ado.net的问题,特别是开发信息管理系统之类的跟数据库比较密切的程序时,在数据和界面层的开发中会遇到不少常见问题,下面我们通过vs.net自带的数据窗体向导来看看能它能帮我们决绝什么问题。

  一.使用向导

  新建Windows 应用程序,为当前项目添加组件,选择数据窗体向导,这里名称填写为DataForm1.cs。单击打开出现数据窗体向导对话框。创建新的类型化数据集MyDataSet。使用本地数据连接向导,这里我选择Northwind库作为数据源。

  在选择表或视图那一步添加Categories表和Products表。添加一个表之间的关系取名CategoryProductRel。在选择显示样式一步中选择显示数据的方式为单个控件中的单个记录,这个就会有数据绑定到文本框。可以用数据导航来选择父表的记录。向导完成后会生成一个OleDbConnection,几个表生成几个OleDbDataAdapter负责数据的获取和更新。另外就是一个强类型的数据集。

  整个程序的运行界面如下:
 

  基本功能都包括了,不过等你点击几下,程序界面上就会出现小的bug,微软可能也估计到没有人会要这个窗体来处理数据,不过这个不是我们所关心的。

  二.数据填充

  先来看看数据集结构:
 

  一个Categories表作为父表,Products表作为子表,CategoryID为外键,建立的数据表关系。

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

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

 


 

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

  this.FillDataSet(objDataSetTemp);

  grdProducts.DataSource = null;

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

  objMyDataSet.Clear();

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

  objMyDataSet.Merge(objDataSetTemp);

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

 

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

 


 

  dataSet.EnforceConstraints = false;

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号