演练:Windows 窗体中的简单数据访问请参见
演练:使用参数化查询在 Windows 窗体中显示数据
在应用程序开发中最常用的方案之一是在窗体上显示数据。本演练阐释一个简单的 Windows 窗体,它在数据网格中显示单个表中的数据。该网格是可编辑的,您能够对数据进行更改并更新数据库。尽管结果并不复杂,但是,本演练阐释了在通过窗体访问数据时将使用的许多基本过程。
若要完成本演练,您需要:
访问带有 Pubs SQL Server 示例数据库的服务器。
演练被分成若干较小的部分:
创建 Windows 窗体。
创建并配置将要针对其绑定窗体的数据集。这包括创建一个通过数据库填充数据集的查询。
向窗体添加 DataGrid 控件,并将其绑定到数据。
添加代码来填充数据集。
添加将数据集更改发送回数据库的代码。
在完成演练后,将有一个与下面所示类似的窗体。
创建项目和窗体
第一步是创建 Windows 窗体。
创建项目和窗体
从“文件”菜单上指向“新建”,然后选择“项目”。
在“项目类型”窗格中选择“Visual Basic 项目”或“Visual C# 项目”,然后在“模板”窗格中选择“Windows 应用程序”。
如果已经打开了解决方案,请选择“关闭解决方案”。
注意 在生产项目中,经常会在同一个解决方案中有多个项目。但是在本演练中,您将关闭任何已打开的解决方案,并与项目一起创建一个新的解决方案,使在此执行的操作与任何现有窗体、数据集等之间不存在任何冲突。
赋予项目符合所使用的命名规则的唯一名称。例如,可以将此项目命名为 Walkthrough_Simple1。
当分配名称并指定新的解决方案后,请单击“确定”。
Visual Studio 创建一个新项目,并在 Windows 窗体设计器中显示新窗体。
创建和配置数据集
与 Windows 窗体应用程序中的大多数数据访问方案一样,您将要用到数据集。数据集是一个保存您想要处理的记录的容器(缓存)。
注意 使用数据集只是访问数据的一种方法,它在有些情况下并不是最佳的选择。然而在 Windows 窗体应用程序中,数据集通常是正确的选择,在本演练中就将使用一个数据集。有关更多信息,请参阅数据访问策略建议。
在本演练中,您将向窗体添加数据集。不过,并不因为该数据集尚不存在,您就手动向窗体添加该数据集。相反,您将执行下列一组步骤:
使用向导创建数据适配器。该适配器包含用于读取和写入数据库信息的 SQL 语句。该向导帮助您定义所需的 SQL 语句。如有必要,该向导还创建与数据库的连接。
生成数据集架构。在此过程中,您将让 Visual Studio 基于您正在访问的表和列创建一个新的类型化数据集类。在生成数据集类时,您还将向窗体中添加该类的一个实例。
遵循本节中的所有过程很重要。否则,窗体将不具有在本演练的随后部分中将使用的数据集。
从“工具箱”的“Windows 窗体”选项卡中,将 Button 控件拖到窗体上。
将该按钮命名为 btnLoad,通过设置其 Text 属性将标题更改为 Load。
双击该按钮以创建其 Click 事件的事件处理方法。
在该方法中,清除所创建的数据集,然后调用数据适配器的 Fill 方法,向该方法传递要填充的数据集。
下面的示例显示完整的方法:
' Visual Basic
Private Sub btnLoad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLoad.Click
DsAuthors1.Clear()
OleDbDataAdapter1.Fill(DsAuthors1)
End Sub
注意 在 Web 窗体页中,数据绑定的工作方式略有不同。有关 Web 窗体页中数据绑定的逐步骤示例,请参阅演练:在 Web 窗体页中显示数据和演练:在 Web 窗体中使用数据库更新查询更新数据。
但是,当使用数据集时,更新需要两个步骤。当数据在数据集内后,您仍必须将其从数据集发送到数据库。数据适配器可通过其 Update 方法完成此操作,该方法检查数据集内所指定数据表中的每个记录,如果某记录已更改,则向数据库发送相应的“更新”(Update)、“插入”(Insert) 或“删除”(Delete) 命令。有关更多信息,请参阅数据集更新介绍。
在本演练中,将向窗体添加一个按钮,当用户想将其更新发送到数据库时,可以按该按钮。
更新数据库
从“工具箱”的“Windows 窗体”选项卡中,将 Button 控件拖到窗体上。
将该按钮命名为 btnUpdate,通过设置其 Text 属性将标题更改为 Save Changes in Database(在数据库中保存更改)。
双击该按钮以创建其 Click 事件的事件处理方法。
在该方法中调用数据适配器的 Update 方法,向该方法传递数据集,该数据集包含要发送到数据库中的更新。使用“消息框”(MessageBox) 对象显示确认文本。
下面的示例显示完整的方法:
' Visual Basic
Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpdate.Click
OleDbDataAdapter1.Update(DsAuthors1)
MessageBox.Show("Database updated!")
End Sub