Dela via


Anvisningar: Skapa en uppslagstabell för en Windows Forms ComboBox-, ListBox- eller CheckedListBox-kontroll

Ibland är det användbart att visa data i ett användarvänligt format i ett Windows-formulär, men lagra data i ett format som är mer meningsfullt för ditt program. Ett beställningsformulär för mat kan till exempel visa menyalternativen efter namn i en listruta. Datatabellen som registrerar beställningen innehåller dock de unika ID-nummer som representerar maten. Följande tabeller visar ett exempel på hur du lagrar och visar orderformulärdata för mat.

Orderdetaljtabell

Beställnings-ID Artikel-ID Kvantitet
4085 12 1
4086 tretton 3

ArtikelTabell

ID-nummer Namn
12 Potatis
tretton Kyckling

I det här scenariot lagrar en tabell, OrderDetailsTable, den faktiska information som du har att göra med att visa och spara. Men för att spara utrymme gör det det på ett ganska kryptiskt sätt. Den andra tabellen, ItemTable, innehåller endast utseenderelaterad information om vilket ID-nummer som motsvarar vilket matnamn och ingenting om de faktiska matbeställningarna.

ItemTable- är ansluten till kontrollen ComboBox, ListBoxeller CheckedListBox via tre egenskaper. Egenskapen DataSource innehåller namnet på den här tabellen. Egenskapen DisplayMember innehåller datakolumnen i den tabell som du vill visa i kontrollen (matnamnet). Egenskapen ValueMember innehåller datakolumnen i tabellen med den lagrade informationen (ID-numret).

OrderDetailsTable- är kopplad till kontrollen via bindningssamlingen, som nås genom egenskapen DataBindings. När du lägger till ett bindningsobjekt i samlingen ansluter du en kontrollegenskap till en specifik datamedlem (kolumnen med ID-nummer) i en datakälla (OrderDetailsTable). När ett val görs i kontrollen sparas den här tabellen där formulärindata sparas.

Skapa en uppslagstabell

  1. Lägg till en ComboBox, ListBoxeller CheckedListBox kontroll i formuläret.

  2. Anslut till din datakälla.

  3. Upprätta en datarelation mellan de två tabellerna. Se Introduktion till DataRelation-objekt.

  4. Ange följande egenskaper. De kan anges i kod eller i designern.

    Fastighet Inställning
    DataSource Tabellen som innehåller information om vilket ID-nummer som motsvarar vilket objekt. I föregående scenario är detta ItemTable.
    DisplayMember Kolumnen i datakälltabellen som du vill visa i kontrollen. I föregående scenario är detta "Name" (om du vill ange i kod använder du citattecken).
    ValueMember Kolumnen i datakälltabellen som innehåller den lagrade informationen. I föregående scenario är detta "ID" (om du vill ange i kod använder du citattecken).
  5. I en procedur anropar du metoden Add för klassen ControlBindingsCollection för att binda kontrollens egenskap SelectedValue till tabellen som registrerar formulärindata. Du kan också göra detta i designern i stället för i kod genom att komma åt kontrollens egenskap DataBindings i fönstret Egenskaper. I föregående scenario är detta OrderDetailsTableoch kolumnen är "ItemID".

    ListBox1.DataBindings.Add("SelectedValue", OrderDetailsTable, "ItemID")
    
    listBox1.DataBindings.Add("SelectedValue", OrderDetailsTable, "ItemID");
    

Se även