1.2.2 使用Windows Forms开发数据库应用程序
.NET Framework 2.0之后的版本对于Windows Forms开发数据绑定进行了增强,改进了对数据绑定的支持,提供了强大的BindingSoruce控件,增强的强类型功能以及局布类的出现,使得在强类型中编写自定义逻辑不用担心有被覆盖的危险。本节以一个简单的实例,演示了如何以尽量少的代码或者是不需要代码,创建一个具有增、删、改功能的应用程序,创建步骤如下所示。
① 新建一个DataAppDemo的Windows窗体应用程序,设置其Title为“AdventureWorks联系人”,设置其Name属性为FrmMain。
② 选择VS 2008主菜单的“数据”|“显示数据源”命令,将显示一个数据源窗口。单击“添加数据源”链接,即弹出一个向导窗口,在向导窗口的数据源类型中选择“数据库”选项,单击“下一步”按钮,再在选择数据源窗口中创建一个连接到AdvantureWorks数据库的数据连接。单击“下一步”按钮将连接保存到配置文件中,再次单击“下一步”按钮,在“选择数据库对象”页面中,选择Contact数据表,如图1.23所示。在“DataSet”名称文本框中,指定数据集的名称为AdventureWorksDataSet,单击“完成”按钮完成数据源的添加。
图1.23 选择Contact数据表
③ 在数据源窗口中,选中AdventureWorksDataSet数据集的Contact表,将它拖到文档窗口的主窗体上。VS 2008将会自动添加一个DataGridView控件、一个BindingNavigator控件、以及AdventureWorksDataSet、BindingSource和TableAdapter控件。
④ 在数据源窗口选中Contact表,单击下拉箭头选择“详细信息”项,然后再将Contact拖动到窗体上,VS 2008会为控件产生详细信息控件。经过简单的编排后,就可以按下F5键运行程序。可以看到一个简单的具有增、删、改功能的窗体已经做完了,用户可以编辑联系人、删除联系人或添加新的联系人,用户界面如图1.24所示。
图1.24 联系人编辑窗口
当在DataGridView控件中单击不同的记录行时,详细信息文本框控件会自动地进行同步,用户可以直接在文本框中更改信息。单击“保存”按钮后,将会保存信息,也可以单击“新增”按钮,新增一条记录,然后单击保存按钮,保存联系人信息。VS 2008自动添加了在窗体加载时填充数据集的代码,以及保存到数据库中的代码,如下所示。
代码位置:见光盘中本章源代码的Form1.cs类。
01 private void contactBindingNavigatorSaveItem_Click(object sender,EventArgse) 02 { 03 this.Validate(); //进行验证工作 04 this.contactBindingSource.EndEdit(); //提交验证更改 05 this.tableAdapterManager. //用TableAdapterManager的UpdateAll方法更新记录 06 UpdateAll(this.adventureWorksDataSet); 07 } 08 private void FrmMain_Load(object sender, EventArgs e) 09 { 10 this.contactTableAdapter.Fill //填充记录 11 (this.adventureWorksDataSet.Contact); 12 }
● 第03行代码调用窗体Validate()方法进行验证工作。
● 第04行代码将用户在窗体上所做的更改提交给BindingSource。
● 第05~06行代码调用了TableAdapterManager的UpdateAll()方法,向数据库提交对数据集的更改。
● 第08~12行代码的Load事件处理代码调用了contactTableAdapter的Fill()方法填充了数据表,这样用户界面有数据得以显示。
Windows Froms改进型的DataGridView控件提供了大量的定制特性,相较于其前一个版本的DataGrid控件,在功能性和易用性都有了明显的提升。