演练:用 TableAdapter DBDirect 方法保存数据

 

发布日期: 2016年7月

针对使用 TableAdapter 的 DBDirect 方法的数据库,此演练提供有关直接执行 SQL 语句的详细说明。 TableAdapter 的 DBDirect 方法可对数据库更新进行精确的控制。 在这些方法的帮助下,你可以通过调用应用程序所需的单个 InsertUpdateDelete 方法来执行特定的 SQL 语句和存储的步骤(而不是在一次调用中执行全部 UPDATE、INSERT 和 DELETE 语句的重载的 Update 方法)。

在本演练中,你将学会如何执行以下任务:

  • 创建新的**“Windows 应用程序”**。

  • 数据源配置向导创建并配置数据集。

  • 选择从**“数据源”**窗口拖动某些项时要在窗体上创建的控件。 有关详细信息,请参阅设置从“数据源”窗口中拖动时要创建的控件

  • 通过将某些项从**“数据源”**窗口拖到窗体上来创建数据绑定窗体。

  • 添加直接访问数据库的方法以及对数据库直接执行插入、更新和删除的方法。

系统必备

若要完成本演练,你将需要:

创建 Windows 应用程序

第一步是创建**“Windows 应用程序”**。

创建新的 Windows 项目

  1. 在 Visual Studio 中,从**“文件”菜单创建一个新的“项目”**。

  2. 将项目命名为 TableAdapterDbDirectMethodsWalkthrough。

  3. 选择**“Windows 应用程序”,然后单击“确定”**。 有关详细信息,请参阅客户端应用程序

    **“TableAdapterDbDirectMethodsWalkthrough”项目即被创建并添加到“解决方案资源管理器”**中。

从数据库创建数据源

此步骤根据 Northwind 示例数据库中的 Region 表,使用**“数据源配置向导”**创建数据源。 你必须具有对 Northwind 示例数据库的访问权限,才能创建连接。 有关设置 Northwind 示例数据库的信息,请参阅如何:安装示例数据库

创建数据源

  1. 在**“数据”菜单上,单击“显示数据源”**。

  2. 在**“数据源”窗口中,选择“添加新数据源”以启动“数据源配置向导”**。

  3. 在**“选择数据源类型”页上选择“数据库”,然后单击“下一步”**。

  4. 在**“选择你的数据连接”**页面上,执行以下操作之一:

    • 如果下拉列表中包含到 Northwind 示例数据库的数据连接,请选择该连接。

      - 或 -

    • 选择**“新建连接”,以启动“添加/修改连接”**对话框。

  5. 如果数据库需要密码,请选择该选项以包括敏感数据,再单击**“下一步”**。

  6. 在**“将连接字符串保存到应用程序配置文件”页面上单击“下一步”**。

  7. 在**“选择数据库对象”页面上展开“表”**节点。

  8. 选择 Region 表,然后单击**“完成”**。

    **“NorthwindDataSet”即被添加到你的项目中,并且“数据源”**窗口中将显示 Region 表。

将控件添加到要显示数据的窗体

通过将某些项从**“数据源”**窗口拖到你的窗体上来创建数据绑定控件。

在 Windows 窗体上创建数据绑定控件

添加将调用单个 TableAdapter DbDirect 方法的按钮

  1. 将三个 Button 控件从**“工具箱”拖到“Form1”(在“RegionDataGridView”**下面)上。

  2. 在每个按钮上设置以下**“名称”“文本”**属性。

    名称 Text
    InsertButton Insert
    UpdateButton 更新
    DeleteButton 删除

添加将新记录插入数据库所使用的代码

  1. 双击**“InsertButton”**以创建 Click 事件的事件处理程序,并在代码编辑器中打开窗体。

  2. 用下面的代码替换 InsertButton_Click 事件处理程序:

            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);
            }
    
        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
    

添加更新数据库中的记录所使用的代码

  1. 双击**“UpdateButton”**以创建 Click 事件的事件处理程序,并在代码编辑器中打开窗体。

  2. 用下面的代码替换 UpdateButton_Click 事件处理程序:

            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();
            }
    
        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
    

添加删除数据库中的记录所使用的代码

  1. 双击**“DeleteButton”**以创建 Click 事件的事件处理程序,并在代码编辑器中打开窗体。

  2. 用下面的代码替换 DeleteButton_Click 事件处理程序:

            private void DeleteButton_Click(object sender, EventArgs e)
            {
                try
                {
                    regionTableAdapter1.Delete(5, "Updated Region Description");
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Delete Failed");
                }
                RefreshDataset();
            }
    
        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
    

运行应用程序

运行应用程序

  • 按 F5 运行该应用程序。

  • 单击**“插入”**按钮,并验证新记录是否出现在网格中。

  • 单击**“更新”**按钮,并验证是否在网格中更新该记录。

  • 单击**“删除”**按钮,并验证是否从网格中移除该记录。

后续步骤

根据应用程序的要求,创建数据绑定窗体后,还需要执行一些步骤。 你可以通过以下操作来增强此演练的效果:

请参阅

TableAdapter 概述
如何:使用 TableAdapter 直接访问数据库
如何:创建 TableAdapter 查询
如何:将数据从对象保存到数据库
在 Visual Studio 中将 Windows 窗体控件绑定到数据
连接到 Visual Studio 中的数据
准备应用程序以接收数据
将数据获取到应用程序
在 Visual Studio 中将控件绑定到数据
在应用程序中编辑数据
验证数据
保存数据