Sdílet prostřednictvím


Návod: Manipulace s daty

Tento názorný postup poskytuje základní komplexní scénář LINQ to SQL pro přidávání, úpravy a odstraňování dat v databázi. Pomocí kopie ukázkové databáze Northwind přidáte zákazníka, změníte jméno zákazníka a odstraníte objednávku.

Poznámka:

Váš počítač může v následujících pokynech zobrazovat odlišné názvy nebo umístění některých prvků uživatelského rozhraní sady Visual Studio. Tyto prvky jsou určeny edicí sady Visual Studio a použitým nastavením. Další informace najdete v tématu Přizpůsobení integrovaného vývojového prostředí.

Tento návod byl napsán pomocí vývojového Nastavení jazyka Visual C#.

Požadavky

Tento názorný postup vyžaduje následující:

  • Tento názorný postup používá k uložení souborů vyhrazenou složku (c:\linqtest6). Vytvořte tuto složku před zahájením návodu.

  • Ukázkovou databázi Northwind

    Pokud tuto databázi nemáte na vývojovém počítači, můžete ji stáhnout z webu pro stažení microsoftu. Pokyny najdete v tématu Stažení ukázkových databází. Po stažení databáze zkopírujte soubor northwnd.mdf do složky c:\linqtest6.

  • Soubor kódu jazyka C# vygenerovaný z databáze Northwind.

    Tento soubor můžete vygenerovat pomocí Návrhář relací objektů nebo nástroje SQLMetal. Tento návod byl napsán pomocí nástroje SQLMetal s následujícím příkazovým řádkem:

    sqlmetal /code:"c:\linqtest6\northwind.cs" /language:csharp "C:\linqtest6\northwnd.mdf" /pluralize

    Další informace najdete v tématu SqlMetal.exe (nástroj pro generování kódu).

Přehled

Tento názorný postup se skládá ze šesti hlavních úloh:

  • Vytvoření řešení LINQ to SQL v sadě Visual Studio

  • Přidání souboru kódu databáze do projektu

  • Vytvoření nového objektu zákazníka

  • Úprava jména kontaktu zákazníka

  • Odstranění objednávky

  • Odesílání těchto změn do databáze Northwind

Vytvoření řešení LINQ to SQL

V tomto prvním úkolu vytvoříte řešení sady Visual Studio, které obsahuje potřebné odkazy na sestavení a spuštění projektu LINQ to SQL.

Vytvoření řešení LINQ to SQL

  1. V nabídce Soubor sady Visual Studio přejděte na příkaz Nový a klepněte na tlačítko Projekt.

  2. V podokně Typy projektů v dialogovém okně Nový projekt klikněte na Visual C#.

  3. V podokně Šablony klikněte na Konzolová aplikace.

  4. Do pole Název zadejte LinqDataManipulationApp.

  5. V poli Umístění ověřte, kam chcete ukládat soubory projektu.

  6. Klikněte na OK.

Přidání odkazů a direktiv LINQ

Tento názorný postup používá sestavení, která nemusí být ve výchozím nastavení v projektu nainstalována. Pokud system.Data.Linq není v projektu uvedený jako odkaz, přidejte ho, jak je vysvětleno v následujících krocích:

Přidání System.Data.Linq

  1. V Průzkumník řešení klepněte pravým tlačítkem myši Na odkazy a klepněte na tlačítko Přidat odkaz.

  2. V dialogovém okně Přidat odkaz klepněte na tlačítko .NET, klepněte na system.Data.Linq sestavení a klepněte na tlačítko OK.

    Sestavení se přidá do projektu.

  3. Na začátek Program.cs přidejte následující direktivy:

    using System.Data.Linq;
    using System.Data.Linq.Mapping;
    

Přidání souboru kódu Northwind do projektu

Tyto kroky předpokládají, že jste k vygenerování souboru kódu z ukázkové databáze Northwind použili nástroj SQLMetal. Další informace najdete v části Požadavky uvedené výše v tomto názorném postupu.

Přidání souboru kódu northwind do projektu

  1. V nabídce Projekt klepněte na tlačítko Přidat existující položku.

  2. V dialogovém okně Přidat existující položku přejděte na c:\linqtest6\northwind.cs a klepněte na tlačítko Přidat.

    Do projektu se přidá soubor northwind.cs.

Nastavení Připojení databáze

Nejprve otestujte připojení k databázi. Všimněte si zejména, že databáze Northwnd nemá žádný znak i. Pokud v dalších krocích vygenerujete chyby, projděte si soubor northwind.cs a zjistěte, jak je napsaná částečná třída Northwind.

Nastavení a otestování připojení k databázi

  1. Do metody ve Main třídě Program zadejte nebo vložte následující kód:

    // Use the following connection string.
    Northwnd db = new Northwnd(@"c:\linqtest6\northwnd.mdf");
    
    // Keep the console window open after activity stops.
    Console.ReadLine();
    
  2. Stisknutím klávesy F5 otestujte aplikaci v tomto okamžiku.

    Otevře se okno konzoly .

    Aplikaci můžete zavřít stisknutím klávesy Enter v okně konzoly nebo kliknutím na zastavit ladění v nabídce Ladění sady Visual Studio.

Vytvoření nové entity

Vytvoření nové entity je jednoduché. Objekty (například Customer) můžete vytvořit pomocí klíčového new slova.

V této a následující části provádíte změny pouze v místní mezipaměti. Do databáze se neposílají žádné změny, dokud nevoláte SubmitChanges na konec tohoto názorného postupu.

Přidání nového objektu entity Customer

  1. Vytvořte nový Customer přidáním následujícího kódu před Console.ReadLine(); metodou Main :

    // Create the new Customer object.
    Customer newCust = new Customer();
    newCust.CompanyName = "AdventureWorks Cafe";
    newCust.CustomerID = "ADVCA";
    
    // Add the customer to the Customers table.
    db.Customers.InsertOnSubmit(newCust);
    
    Console.WriteLine("\nCustomers matching CA before insert");
    
    foreach (var c in db.Customers.Where(cust => cust.CustomerID.Contains("CA")))
    {
        Console.WriteLine("{0}, {1}, {2}",
            c.CustomerID, c.CompanyName, c.Orders.Count);
    }
    
  2. Stisknutím klávesy F5 můžete řešení ladit.

  3. Stisknutím klávesy Enter v okně konzoly zastavte ladění a pokračujte v návodu.

Aktualizace entity

V následujících krocích načtete Customer objekt a upravíte jednu z jeho vlastností.

Změna názvu zákazníka

  • Přidejte následující kód výše Console.ReadLine();:

    // Query for specific customer.
    // First() returns one object rather than a collection.
    var existingCust =
        (from c in db.Customers
         where c.CustomerID == "ALFKI"
         select c)
        .First();
    
    // Change the contact name of the customer.
    existingCust.ContactName = "New Contact";
    

Odstranění entity

Pomocí stejného objektu zákazníka můžete odstranit první objednávku.

Následující kód ukazuje, jak oddělit relace mezi řádky a jak odstranit řádek z databáze. Před přidáním následujícího kódu Console.ReadLine zjistěte, jak lze objekty odstranit:

Odstranění řádku

  • Přidejte následující kód těsně nad Console.ReadLine();:

    // Access the first element in the Orders collection.
    Order ord0 = existingCust.Orders[0];
    
    // Access the first element in the OrderDetails collection.
    OrderDetail detail0 = ord0.OrderDetails[0];
    
    // Display the order to be deleted.
    Console.WriteLine
        ("The Order Detail to be deleted is: OrderID = {0}, ProductID = {1}",
        detail0.OrderID, detail0.ProductID);
    
    // Mark the Order Detail row for deletion from the database.
    db.OrderDetails.DeleteOnSubmit(detail0);
    

Odesílání změn do databáze

Posledním krokem potřebným k vytváření, aktualizaci a odstraňování objektů je skutečně odeslání změn do databáze. Bez tohoto kroku jsou změny pouze místní a nezobrazí se ve výsledcích dotazu.

Odeslání změn do databáze

  1. Vložte následující kód těsně nad Console.ReadLine:

    db.SubmitChanges();
    
  2. Vložte následující kód (za SubmitChanges), který zobrazí před a po efektech odeslání změn:

    Console.WriteLine("\nCustomers matching CA after update");
    foreach (var c in db.Customers.Where(cust =>
        cust.CustomerID.Contains("CA")))
    {
        Console.WriteLine("{0}, {1}, {2}",
            c.CustomerID, c.CompanyName, c.Orders.Count);
    }
    
  3. Stisknutím klávesy F5 můžete řešení ladit.

  4. Stisknutím klávesy Enter v okně konzoly aplikaci zavřete.

Poznámka:

Po přidání nového zákazníka odesláním změn nemůžete toto řešení spustit znovu, jak je. Pokud chcete řešení spustit znovu, změňte jméno zákazníka a ID zákazníka, které se má přidat.

Viz také