共用方式為


將物件的資料儲存到 .NET Framework 應用程式中的資料庫

注意

資料集和相關類別是 2000 年代初的舊版 .NET Framework 技術,可讓應用程式在應用程式與資料庫中斷連線時使用記憶體中的資料。 這些技術特別適用於可讓使用者修改資料並將變更保存回資料庫的應用程式。 雖然已證明資料集是非常成功的技術,但建議新的 .NET 應用程式使用 Entity Framework Core。 Entity Framework 提供更自然的方式,將表格式資料作為物件模型使用,而且具有更簡單的程式設計介面。

您可以將物件中的值傳遞至其中一個 TableAdapter 的 DBDirect 方法,以將物件中的資料儲存至資料庫 (例如,TableAdapter.Insert)。 如需詳細資訊,請參閱 TableAdapter

若要儲存物件集合中的資料,請對物件的集合執行迴圈 (例如 for-next 迴圈),並使用 TableAdapter 的其中一個 DBDirect 方法,將每個物件的值傳送至資料庫。

根據預設,DBDirect 方法會建立在可直接對資料庫執行的 TableAdapter 上。 您可以直接呼叫這些方法,而不需要 DataSetDataTable 物件來協調變更,以將更新傳送至資料庫。

注意

當您設定 TableAdapter 時,主要查詢必須提供足夠的資訊,才能建立 DBDirect 方法。 例如,如果 TableAdapter 設定為從未定義主索引鍵資料行的資料表查詢資料,則不會產生 DBDirect 方法。

TableAdapter DBDirect 方法 描述
TableAdapter.Insert 將新記錄新增至資料庫,並可讓您將個別資料行值當作方法參數傳入。
TableAdapter.Update 更新資料庫中的現有記錄。 Update 方法會採用原始和新的資料行值作為方法參數。 原始值用於找出原始記錄,而新的值則用於更新該記錄。

TableAdapter.Update 方法也可用來將資料集中的變更調和回資料庫,方法是將 DataSetDataTableDataRowDataRow 陣列當作方法參數。
TableAdapter.Delete 根據做為方法參數傳入的原始資料行值,刪除資料庫中的現有記錄。

將物件中的新記錄儲存至資料庫

  • 將值傳遞至 TableAdapter.Insert 方法,以建立記錄。

    下列範例會將 currentCustomer 物件中的值傳遞至 TableAdapter.Insert 方法,以在 Customers 資料表中建立新的客戶記錄。

    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 前置詞的屬性來儲存原始值。

    下列範例會將 Customer 物件中的新值和原始值傳遞至 TableAdapter.Update 方法,以更新 Customers 資料表中的現有記錄。

    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 資料表中的記錄。

    private void DeleteCustomer(Customer cust)
    {
        customersTableAdapter.Delete(
            cust.origCustomerID,
            cust.origCompanyName,
            cust.origContactName,
            cust.origContactTitle,
            cust.origAddress,
            cust.origCity,
            cust.origRegion,
            cust.origPostalCode,
            cust.origCountry,
            cust.origPhone,
            cust.origFax);
    }
    

.NET 安全性

您必須具有權限,才能在資料庫中的資料表上執行選取的 INSERTUPDATEDELETE