Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Tipo di dati bit per enumerare il mapping del tipo dal database al set di dati in SQL Server 2008

Puoi gestirlo in 1 di 2 modi.

1) Invece di restituire i dati come bit, esegui il casting nella tua query per far sì che restituisca Compra/Vendi come una stringa in base al valore. Questo funzionerà davvero bene solo se la tua griglia è di sola lettura. Se devi essere in grado di aggiungere/modificare dati, sarebbe complicato convertire il tuo acquisto/vendita in un po' e imporre che l'utente possa inserire solo acquisto/vendita. Probabilmente vorrai utilizzare il metodo 2 se hai bisogno di aggiungere/modificare dati.

per esempio. diciamo che il nome della tua colonna si chiama BuySell ed è di tipo bit

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

2) Dovrai disattivare "Autogeneratecolumns" su DataGridView e impostare manualmente le colonne. Se la tua griglia è di sola lettura, aggiungerei una colonna di testo per la tua colonna di acquisto/vendita che corrisponde al valore del tuo bit. Quindi nell'evento Cell_Formatting per la griglia, aggiorna il valore in base al bit. Qualcosa come il seguente:

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

Se la tua griglia deve essere modificabile, imposta una DataTable che rappresenti i tuoi valori di acquisto/vendita con un membro display e un membro valore. Associalo come origine dati per una colonna della casella combinata. Ora il caricamento dei dati visualizzerà correttamente Compra/Vendi nella casella combinata e per le nuove righe quando selezioni un valore dal menu a discesa popolerà l'origine dati sottostante con il valore di bit corretto.