sql >> Databáze >  >> RDS >> Sqlserver

Mapování bitového datového typu na typ výčtu z databáze do datové sady v SQL Server 2008

Můžete to zvládnout 1 ze 2 způsobů.

1) Místo vracení dat jako bit proveďte casting ve svém dotazu, aby vrátil nákup/prodej jako řetězec založený na hodnotě. To bude opravdu dobře fungovat pouze v případě, že je vaše mřížka pouze pro čtení. Pokud potřebujete mít možnost přidávat/upravovat data, bylo by obtížné převést váš nákup/prodej zpět na bit a vynutit si, aby uživatel mohl zadat pouze nákup/prodej. Pokud potřebujete přidat/upravit data, pravděpodobně budete chtít použít metodu 2.

např. řekněme, že název vašeho sloupce se nazývá BuySell a je typu bit

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

2) Budete muset vypnout "Autogeneratecolumns" v DataGridView a nastavit sloupce ručně. Pokud je vaše mřížka pouze pro čtení, přidal bych textový sloupec pro váš sloupec nákupu/prodeje, který mapuje vaši bitovou hodnotu. Potom v události Cell_Formatting pro mřížku aktualizujte hodnotu na základě bitu. Něco jako níže:

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

Pokud je potřeba, aby byla vaše mřížka upravitelná, nastavte DataTable, která představuje vaše hodnoty nákupu/prodeje pomocí displaymember a valuemember. Svažte to jako zdroj dat pro sloupec pole se seznamem. Nyní načtení dat správně zobrazí Buy/Sell v comboboxu a pro nové řádky, když vyberete hodnotu z rozevíracího seznamu, naplní váš podkladový zdroj dat správnou bitovou hodnotu.




  1. VAROVÁNÍ:Navazování připojení SSL bez ověření identity serveru se nedoporučuje

  2. SQL join ON není stejný v Mysql

  3. SQL Query se provádí pomalu v C#, ale rychle v Toad

  4. Vztah „mnoho do dvou“.