共用方式為


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

備註

類別 DataSet 和相關類別是 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 更新資料庫中的現有記錄。 該方法會接受原始和新欄值作為方法參數。 原始值可用來尋找原始記錄,而新值則用來更新該記錄。

TableAdapter.Update 方法也可用於將數據集中的變更整理回資料庫,並以DataSetDataTableDataRow或是DataRow的陣列作為方法參數。
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 前置詞的屬性來儲存原始值。

    下列範例會將 物件中的原始值傳遞至 TableAdapter.Delete 方法,以刪除Customers數據表中的Customer記錄。

    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