共用方式為


HOW TO:從物件中將資料儲存至資料庫

更新:2007 年 11 月

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

若要儲存物件集合的資料,請在物件的集合中執行迴圈 (Loop) (例如,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 方法,藉以建立資料錄。

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

    Private Sub AddNewCustomer(ByVal currentCustomer As Customer)
    
        CustomersTableAdapter.Insert( _
            currentCustomer.CustomerID, _
            currentCustomer.CompanyName, _
            currentCustomer.ContactName, _
            currentCustomer.ContactTitle, _
            currentCustomer.Address, _
            currentCustomer.City, _
            currentCustomer.Region, _
            currentCustomer.PostalCode, _
            currentCustomer.Country, _
            currentCustomer.Phone, _
            currentCustomer.Fax)
    End Sub
    
    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 Sub UpdateCustomer(ByVal cust As Customer)
    
            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)
    End Sub
    
    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 前置詞的屬性,儲存原始值。

    下列範例會從 Customers 資料表刪除資料錄,方法是將 Customer 物件中的原始值傳遞至 TableAdapter.Delete 方法。

    Private Sub DeleteCustomer(ByVal cust As Customer)
    
        CustomersTableAdapter.Delete( _
            cust.origCustomerID, _
            cust.origCompanyName, _
            cust.origContactName, _
            cust.origContactTitle, _
            cust.origAddress, _
            cust.origCity, _
            cust.origRegion, _
            cust.origPostalCode, _
            cust.origCountry, _
            cust.origPhone, _
            cust.origFax)
    End Sub
    
    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);
    }
    

安全性

您必須擁有在資料庫的資料表上執行選取 INSERT、UPDATE 或 DELETE 的使用權限。

請參閱

工作

HOW TO:連接至物件中的資料

逐步解說:連接至物件中的資料

HOW TO:以 TableAdapter 直接存取資料庫

概念

Visual Studio 中的物件繫結

顯示資料概觀

其他資源

連接至 Visual Studio 中的資料

準備您的應用程式以接收資料

將資料擷取至您的應用程式中

顯示 Windows 應用程式之表單上的資料

在您的應用程式中編輯資料

驗證資料

儲存資料