注释
此类 DataSet 和相关类是 2000 年代初的旧版 .NET Framework 技术,使应用程序能够在应用与数据库断开连接时处理内存中的数据。 这些技术对于使用户能够修改数据并将更改保留回数据库的应用特别有用。 尽管数据集是经过证实的成功技术,但新 .NET 应用程序的建议方法是使用 Entity Framework Core。 Entity Framework 提供了一种更自然的方式来将表格数据用作对象模型,并且具有更简单的编程接口。
通过将对象中的值传递给 TableAdapter 的 DBDirect 方法之一(例如, TableAdapter.Insert
),可以将对象中的数据保存到数据库中。 有关详细信息,请参阅 TableAdapter。
若要保存对象集合中的数据,请循环访问对象集合(例如 for-next 循环),并使用 TableAdapter DBDirect
的方法之一将每个对象的值发送到数据库。
默认情况下, DBDirect
在可直接针对数据库运行的 TableAdapter 上创建方法。 可以直接调用这些方法,不需要 DataSet 或 DataTable 对象来协调更改,以便将更新发送到数据库。
注释
配置 TableAdapter 时,主查询必须提供足够的信息才能创建DBDirect
方法。 例如,如果将 TableAdapter 配置为从未定义主键列的表中查询数据,则不会生成 DBDirect
方法。
TableAdapter DBDirect 方法 | DESCRIPTION |
---|---|
TableAdapter.Insert |
将新记录添加到数据库,并使你能够以方法参数的形式传入各个列值。 |
TableAdapter.Update |
更新数据库中的现有记录。 该方法 Update 采用原始列值和新列值作为方法参数。 原始值用于查找原始记录,新值用于更新该记录。该 TableAdapter.Update 方法还用于通过将DataSet、DataTable、DataRow或DataRow数组作为方法参数来将数据集中的更改协调回数据库。 |
TableAdapter.Delete |
根据作为方法参数传入的原始列值从数据库中删除现有记录。 |
将新记录从对象保存到数据库
通过将值
TableAdapter.Insert
传递给方法来创建记录。以下示例通过将对象
TableAdapter.Insert
中的Customers
currentCustomer
值传递给方法,在表中创建新的客户记录。private void AddNewCustomers(Customer currentCustomer) { customersTableAdapter.Insert( currentCustomer.CustomerID, currentCustomer.CompanyName, currentCustomer.ContactName, currentCustomer.ContactTitle, currentCustomer.Address, currentCustomer.City, currentCustomer.Region, currentCustomer.PostalCode, currentCustomer.Country, currentCustomer.Phone, currentCustomer.Fax); }
将现有记录从对象更新到数据库
通过调用
TableAdapter.Update
该方法修改记录,传入新值以更新记录,并传入原始值以查找记录。注释
为了将原始值传递给
Update
方法,您的对象需要维护这些值。 此示例使用前缀orig
的属性来存储原始值。以下示例通过将对象中的
Customers
Customer
新值和原始值传递给TableAdapter.Update
方法来更新表中的现有记录。private void UpdateCustomer(Customer cust) { customersTableAdapter.Update( cust.CustomerID, cust.CompanyName, cust.ContactName, cust.ContactTitle, cust.Address, cust.City, cust.Region, cust.PostalCode, cust.Country, cust.Phone, cust.Fax, cust.origCustomerID, cust.origCompanyName, cust.origContactName, cust.origContactTitle, cust.origAddress, cust.origCity, cust.origRegion, cust.origPostalCode, cust.origCountry, cust.origPhone, cust.origFax); }
从数据库中删除现有记录
通过调用
TableAdapter.Delete
方法并传入原始值来查找记录,从而删除记录。注释
您的对象需要维护原始值,以便将它们传递给
Delete
方法。 此示例使用前缀orig
的属性来存储原始值。以下示例通过将对象中的
Customer
原始值传递给TableAdapter.Delete
方法,从Customers
表中删除记录。
.NET 安全性
必须获得权限才能在数据库中对表执行选定的INSERT
、UPDATE
或DELETE
。