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

更新:2007 年 11 月

针对使用 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. 在每个按钮上设置以下“名称”和“文本”属性。

    名称

    文本

    InsertButton

    插入

    UpdateButton

    更新

    DeleteButton

    删除

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

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

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

    Private Sub InsertButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        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(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        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(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        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 应用程序中的窗体上显示数据

在应用程序中编辑数据

验证数据

保存数据