在向大家详细介绍VB.NET数据窗体之前,首先让大家了解下使用BindingContext对象,然后全面介绍VB.NET数据窗体。
使用VB.NET数据窗体向导(Data Form Wizard)你能迅速获得文件操作程序窗体。为了使用它,选择Project菜单的Add New Item,接着选择Data Form(VB.NET数据窗体)。该向导将一步一步帮助你指定希望的数据,并为那些数据建立一个文件操作程序。
但是这种自动生成程序有一个重要的限制。如果被访问的数据有任何字段不能为空(因为数据库大纲不允许空值),那么向导生成的程序不能添加记录。当点击Add按钮时,将出现错误信息,提示记录中的***个字段不允许为空(如果你没有***的服务包,你也许看不到该错误信息,但是程序拒绝添加记录)。
该问题是由于VB.NET数据窗体向导使用BindingContext对象给绑定的数据表添加了一行。下面是btnAdd_Click事件程序失败的代码:
- Me.BindingContext(objProducts, "Products")。AddNew()
解决方法是为新行略过BindingContext对象。下面是添加新行的典型代码,该代码应该代替上面的一行代码:
- Dim dr As DataRow
- dr = objProducts.Tables("Products").NewRow
- dr.Item("ProductName") = ""
- dr.Item("Discontinued") = False
- ' Set any other fields that cannot null to default values.
- objProducts.Tables("Products").Rows.Add(dr)
在用数据表的NewRow方法获得一个空行时,该代码给不能为空的字段填充值。接着数据表接受新行,通过数据表行集合的Add方法添加新行。
有了这个补丁后,该数据程序能够运行。可以对它进行增强或改变,例如改变SupplierID 和CategoryID字段以从包含供应商和类别的下拉列表中选择。
【编辑推荐】