Spara data från ett objekt till en databas i .NET Framework-program

Anmärkning

Klassen DataSet och relaterade klasser är äldre .NET Framework-tekniker från början av 2000-talet som gör det möjligt för program att arbeta med data i minnet medan apparna kopplas från databasen. Teknikerna är särskilt användbara för appar som gör det möjligt för användare att ändra data och spara ändringarna tillbaka till databasen. Även om datauppsättningar är en bevisad framgångsrik teknik är den rekommenderade metoden för nya .NET-program att använda Entity Framework Core. Entity Framework är ett mer naturligt sätt att arbeta med tabelldata som objektmodeller och har ett enklare programmeringsgränssnitt.

Du kan spara data i objekt till en databas genom att skicka värdena från objektet till någon av TableAdapters DBDirect-metoder (till exempel TableAdapter.Insert). Mer information finns i TableAdapter.

Om du vill spara data från en samling objekt går du igenom samlingen med objekt (till exempel en for-next-loop) och skickar värdena för varje objekt till databasen med någon av TableAdapter-metoderna DBDirect .

Som standard DBDirect skapas metoder på en TableAdapter som kan köras direkt mot databasen. Dessa metoder kan anropas direkt och kräver varken DataSet eller DataTable objekt för att synchronisera ändringar och skicka uppdateringar till en databas.

Anmärkning

När du konfigurerar en TableAdapter måste huvudfrågan ge tillräckligt med information för de DBDirect metoder som ska skapas. Om en TableAdapter till exempel har konfigurerats för att fråga efter data från en tabell som inte har definierat en primärnyckelkolumn, genererar DBDirect den inte metoder.

TableAdapter DBDirect-metod Beskrivning
TableAdapter.Insert Lägger till nya poster i en databas och gör att du kan skicka in enskilda kolumnvärden som metodparametrar.
TableAdapter.Update Uppdaterar befintliga poster i en databas. Metoden Update tar ursprungliga och nya kolumnvärden som metodparametrar. De ursprungliga värdena används för att hitta den ursprungliga posten och de nya värdena används för att uppdatera posten.

Metoden TableAdapter.Update används också för att stämma av ändringar i en datauppsättning tillbaka till databasen genom att ta en DataSet, DataTable, DataRoweller en matris med DataRows som metodparametrar.
TableAdapter.Delete Tar bort befintliga poster från databasen baserat på de ursprungliga kolumnvärden som skickades som metodparametrar.

Spara nya poster från ett objekt till en databas

  • Skapa posterna genom att skicka värdena till TableAdapter.Insert-metoden.

    I följande exempel skapas en ny kundpost i tabellen Customers genom att värdena i objektet currentCustomer skickas till metoden TableAdapter.Insert.

    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);
    }
    

Uppdatera befintliga poster i en databas med data från ett objekt

  • Ändra posterna genom att anropa TableAdapter.Update-metoden, skicka in de nya värdena för att uppdatera posten och skicka in de ursprungliga värdena för att hitta posten.

    Anmärkning

    Objektet måste behålla de ursprungliga värdena för att kunna skicka dem till Update-metoden. I det här exemplet används egenskaper med ett orig prefix för att lagra de ursprungliga värdena.

    I följande exempel uppdateras en befintlig post i Customers-tabellen genom att de nya och ursprungliga värdena i Customer-objektet skickas till TableAdapter.Update-metoden.

    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);
    }
    

Ta bort befintliga poster från en databas

  • Ta bort posterna genom att anropa metoden TableAdapter.Delete och överföra de ursprungliga värdena för att lokalisera posterna.

    Anmärkning

    Objektet måste bibehålla de ursprungliga värdena för att kunna skicka dem till metoden Delete. I det här exemplet används egenskaper med ett orig prefix för att lagra de ursprungliga värdena.

    I följande exempel tas en post bort från Customers-tabellen genom att skicka de ursprungliga värdena i Customer-objektet till TableAdapter.Delete-metoden.

    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-säkerhet

Du måste ha behörighet att utföra den markerade INSERT, UPDATE eller DELETE i tabellen i databasen.