sql >> Database >  >> RDS >> Sqlserver

Bit datatype naar enum type mapping van database naar dataset in SQL Server 2008

Je kunt het op 1 van de 2 manieren aanpakken.

1) In plaats van de gegevens als een bit terug te geven, moet u de casting in uw query uitvoeren om Kopen/Verkopen als een tekenreeks te laten retourneren op basis van de waarde. Dit werkt alleen echt goed als uw raster alleen-lezen is. Als u gegevens moet kunnen toevoegen/bewerken, zou het rommelig worden om uw Kopen/Verkopen terug te zetten naar een bit en af ​​te dwingen dat de gebruiker alleen kopen/Verkopen kan invoeren. U zou waarschijnlijk methode 2 willen gebruiken als u gegevens moet toevoegen/bewerken.

bijv. laten we zeggen dat uw kolomnaam BuySell heet en van het type bit is

SELECT CASE WHEN BuySell = CAST(0 AS BIT) THEN 'Buy' ELSE 'Sell' AS BuySell FROM TableName

2) U moet "Autogeneratecolumns" op de DataGridView uitschakelen en uw kolommen handmatig instellen. Als uw raster alleen-lezen is, zou ik een tekstkolom voor uw koop-/verkoopkolom toevoegen die overeenkomt met uw bitwaarde. Werk vervolgens in de Cell_Formatting-gebeurtenis voor het raster de waarde bij op basis van de bit. Iets als het onderstaande:

private void dgv_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    if (dgv.Columns[e.ColumnIndex].Name == "buysell")
    {
        if (e.Value != null)
        {
            if (e.Value.ToString() == "1")
            {
                e.Value = "Sell";
            }
            else
            {
                e.Value = "Buy";
            }
        }
        else
        {
            e.Value = "Buy";
        }
    }
}

Als uw raster bewerkbaar moet zijn, stelt u een gegevenstabel in die uw koop-/verkoopwaarden vertegenwoordigt met een weergavelid en waardelid. Bind dat als de gegevensbron voor een combobox-kolom. Als u nu de gegevens laadt, wordt Kopen/Verkopen correct weergegeven in de combobox en voor nieuwe rijen, wanneer u een waarde selecteert in de vervolgkeuzelijst, wordt uw onderliggende gegevensbron gevuld met de juiste bitwaarde.




  1. De eenvoudigste een-op-veel kaart in Hibernate werkt niet in MySQL

  2. Zijn functienamen in PostgreSQL niet hoofdlettergevoelig?

  3. SQL Server - definiëren van een XML-type kolom met UTF-8-codering

  4. Hoe SQL-querygroep per probleem uit te voeren?