在 .NET Framework 应用程序中使用 TableAdapter 直接访问数据库

注意

数据集和相关类是 2000 年代初的旧 .NET Framework 技术,使应用程序能够在应用程序与数据库断开连接时处理内存中的数据。 它们对于使用户能够修改数据并持续更改回数据库的应用程序特别有用。 虽然数据集已被证明是一项非常成功的技术,但我们建议新的 .NET 应用程序使用 Entity Framework Core。 实体框架提供了一种更自然的方式来将表格数据作为对象模型,并且具有更简单的编程接口。

除了 InsertCommandUpdateCommandDeleteCommand 之外,还可使用能直接针对数据库运行的方法创建 TableAdapter。 可调用这些方法(TableAdapter.InsertTableAdapter.UpdateTableAdapter.Delete)来直接操作数据库中的数据。

如果不想创建这些直接方法,请在“属性”窗口中将 TableAdapter 的 GenerateDbDirectMethods 属性设置为 false。 除了 TableAdapter 的主要查询外,如果有任何查询添加到 TableAdapter,它们则是不会生成这些 DbDirect 方法的独立查询。

将命令直接发送到数据库

调用执行要尝试完成的任务的 DbDirect 方法。

将新记录直接插入数据库

  • 调用 TableAdapter 的 Insert 方法,并将每列的值作为参数传入。 下面的过程以 Northwind 数据库中的 Region 表为例。

    注意

    如果没有可用的实例,请实例化要使用的 TableAdapter。

    NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter = 
        new NorthwindDataSetTableAdapters.RegionTableAdapter();
    
    regionTableAdapter.Insert(5, "NorthWestern");
    

直接更新数据库中的记录

  • 调用 TableAdapter 的 Update 方法,并将每列的新值和原始值作为参数传入。

    注意

    如果没有可用的实例,请实例化要使用的 TableAdapter。

    NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter = 
        new NorthwindDataSetTableAdapters.RegionTableAdapter();
    
    regionTableAdapter.Update(1, "East", 1, "Eastern");
    

直接从数据库中删除记录

  • 调用 TableAdapter 的 Delete 方法,并将每列的值作为 Delete 方法的参数传入。 下面的过程以 Northwind 数据库中的 Region 表为例。

    注意

    如果没有可用的实例,请实例化要使用的 TableAdapter。

    NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter = 
        new NorthwindDataSetTableAdapters.RegionTableAdapter();
    
    regionTableAdapter.Delete(5, "NorthWestern");