演练:用 TableAdapter DBDirect 方法保存数据
针对使用 TableAdapter 的 DBDirect 方法的数据库,此演练提供有关直接执行 SQL 语句的详细说明。 TableAdapter 的 DBDirect 方法可对数据库更新进行精确的控制。 在这些方法的帮助下,您可以通过调用应用程序所需的单个 Insert、Update 和 Delete 方法来执行特定的 SQL 语句和存储的步骤(而不是在一次调用中执行全部 UPDATE、INSERT 和 DELETE 语句的重载的 Update 方法)。
通过此演练,您将学会如何执行以下任务:
创建新的**“Windows 应用程序”**。
用 数据源配置向导 创建并配置数据集。
选择从**“数据源”**窗口拖动某些项时要在窗体上创建的控件。 有关更多信息,请参见如何:设置从“数据源”窗口中拖动时要创建的控件。
通过将某些项从**“数据源”**窗口拖到窗体上来创建数据绑定窗体。
添加直接访问数据库的方法以及对数据库直接执行插入、更新和删除的方法。
系统必备
若要完成本演练,您需要:
- 能够访问 Northwind 示例数据库。 有关更多信息,请参见如何:安装示例数据库。
创建 Windows 应用程序
第一步是创建**“Windows 应用程序”**。
创建新的 Windows 项目
在 Visual Studio 中,从**“文件”菜单创建一个新的“项目”**。
将项目命名为 TableAdapterDbDirectMethodsWalkthrough。
选择**“Windows 应用程序”,再单击“确定”**。 有关更多信息,请参见创建基于 Windows 的应用程序。
**“TableAdapterDbDirectMethodsWalkthrough”项目被创建并被添加到“解决方案资源管理器”**中。
从数据库创建数据源
此步骤根据 Northwind 示例数据库中的 Region 表,使用**“数据源配置向导”**创建数据源。 必须具有访问 Northwind 示例数据库的权限才能创建连接。 有关设置 Northwind 示例数据库的信息,请参见 如何:安装示例数据库。
创建数据源
在**“数据”菜单上,单击“显示数据源”**。
在**“数据源”窗口中,选择“添加新数据源”,启动“数据源配置向导”**。
在**“选择数据源类型”页上选择“数据库”,然后单击“下一步”**。
在**“选择您的数据连接”**页面上执行下列操作之一:
如果下拉列表中包含到 Northwind 示例数据库的数据连接,请选择该连接。
- 或 -
选择**“新建连接”,以启动“添加/修改连接”**对话框。 有关更多信息,请参见 “添加/修改连接”对话框(通用)。
如果数据库需要密码,请选择该选项以包括敏感数据,再单击**“下一步”**。
在**“将连接字符串保存到应用程序配置文件”页面上单击“下一步”**。
在**“选择数据库对象”页面上展开“表”**节点。
选择 Region 表,再单击**“完成”**。
**“NorthwindDataSet”被添加到您的项目中,然后 Region 表出现在“数据源”**窗口中。
将控件添加到要显示数据的窗体
通过将某些项从**“数据源”**窗口拖到您的窗体上来创建数据绑定控件。
在 Windows 窗体上创建数据绑定控件
将主**“Region”节点从“数据源”**窗口拖到窗体上。
用于导航记录的 DataGridView 控件和工具栏(BindingNavigator)出现在窗体上。 组件栏中出现 NorthwindDataSet、RegionTableAdapter、BindingSource 和 BindingNavigator。
添加将调用单个 TableAdapter DbDirect 方法的按钮
将三个 Button 控件从**“工具箱”拖到“Form1”(在“RegionDataGridView”**下面)上。
在每个按钮上设置以下**“名称”和“文本”**属性。
名称
Text
InsertButton
Insert
UpdateButton
更新
DeleteButton
删除
添加将新记录插入数据库所使用的代码
双击**“InsertButton”**创建 Click 事件的事件处理程序,并在代码编辑器中打开窗体。
用下面的代码替换 InsertButton_Click 事件处理程序:
Private Sub InsertButton_Click() Handles InsertButton.Click Dim newRegionID As Integer = 5 Dim newRegionDescription As String = "NorthEastern" Try RegionTableAdapter1.Insert(newRegionID, newRegionDescription) Catch ex As Exception MessageBox.Show("Insert Failed") End Try RefreshDataset() End Sub Private Sub RefreshDataset() Me.RegionTableAdapter1.Fill(Me.NorthwindDataSet1._Region) End Sub
private void InsertButton_Click(object sender, EventArgs e) { Int32 newRegionID = 5; String newRegionDescription = "NorthEastern"; try { regionTableAdapter1.Insert(newRegionID, newRegionDescription); } catch (Exception ex) { MessageBox.Show("Insert Failed"); } RefreshDataset(); } private void RefreshDataset() { this.regionTableAdapter1.Fill(this.northwindDataSet1.Region); }
添加更新数据库中的记录所使用的代码
双击**“UpdateButton”**创建 Click 事件的事件处理程序,并在代码编辑器中打开窗体。
用下面的代码替换 UpdateButton_Click 事件处理程序:
Private Sub UpdateButton_Click() Handles UpdateButton.Click Dim newRegionID As Integer = 5 Try RegionTableAdapter1.Update(newRegionID, "Updated Region Description", 5, "NorthEastern") Catch ex As Exception MessageBox.Show("Update Failed") End Try RefreshDataset() End Sub
private void UpdateButton_Click(object sender, EventArgs e) { Int32 newRegionID = 5; try { regionTableAdapter1.Update(newRegionID, "Updated Region Description", 5, "NorthEastern"); } catch (Exception ex) { MessageBox.Show("Update Failed"); } RefreshDataset(); }
添加删除数据库中的记录所使用的代码
双击**“DeleteButton”**创建 Click 事件的事件处理程序,并在代码编辑器中打开窗体。
用下面的代码替换 DeleteButton_Click 事件处理程序:
Private Sub DeleteButton_Click() Handles DeleteButton.Click Try RegionTableAdapter1.Delete(5, "Updated Region Description") Catch ex As Exception MessageBox.Show("Delete Failed") End Try RefreshDataset() End Sub
private void DeleteButton_Click(object sender, EventArgs e) { try { regionTableAdapter1.Delete(5, "Updated Region Description"); } catch (Exception ex) { MessageBox.Show("Delete Failed"); } RefreshDataset(); }
运行应用程序
运行应用程序
按 F5 运行应用程序。
单击**“插入”**按钮,并验证新记录是否出现在网格中。
单击**“更新”**按钮,并验证记录是否在网格中被更新。
单击**“删除”**按钮,并验证记录是否从网格中被移除。
后续步骤
根据应用程序的要求,创建数据绑定窗体后,还需要执行一些步骤。 您可以通过以下操作来增强此演练的效果:
向该窗体添加搜索功能。 有关更多信息,请参见 如何:向 Windows 窗体应用程序中添加参数化查询。
通过从**“数据源”窗口中选择“使用向导配置数据集”**将其他表添加到数据集中。 可以通过将相关节点拖到窗体上来添加显示相关数据的控件。 有关更多信息,请参见如何:在 Windows 窗体应用程序中显示相关数据。
请参见
任务
概念
在 Visual Studio 中将 Windows 窗体控件绑定到数据