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

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

通过此演练,您将学会如何执行以下任务:

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

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

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

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

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

系统必备

若要完成本演练,您需要:

创建 Windows 应用程序

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

创建新的 Windows 项目

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

  2. 将项目命名为 TableAdapterDbDirectMethodsWalkthrough。

  3. 选择**“Windows 应用程序”,再单击“确定”**。 有关更多信息,请参见创建基于 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 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);
    }
    

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

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

  2. 用下面的代码替换 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();
    }
    

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

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

  2. 用下面的代码替换 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 运行应用程序。

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

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

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

后续步骤

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

请参见

任务

如何:使用 TableAdapter 直接访问数据库

如何:创建 TableAdapter 查询

如何:将数据从对象保存到数据库

概念

TableAdapter 概述

在 Visual Studio 中将 Windows 窗体控件绑定到数据

在 Visual Studio 中将控件绑定到数据

其他资源

连接到 Visual Studio 中的数据

准备应用程序以接收数据

将数据获取到应用程序

在应用程序中编辑数据

验证数据

保存数据