Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Tipo de dados de bit para mapeamento de tipo de enumeração do banco de dados para o conjunto de dados no SQL Server 2008


Você pode lidar com isso de 1 de 2 maneiras.

1) Em vez de retornar os dados como um bit, faça a conversão em sua consulta para que ela retorne Comprar/Vender como uma string com base no valor. Isso só funcionará realmente bem se sua grade for somente leitura. Se você precisar adicionar/editar dados, seria complicado converter sua compra/venda de volta para um pouco e impor que o usuário só pudesse inserir compra/venda. Você provavelmente gostaria de usar o método 2 se precisar adicionar/editar dados.

por exemplo. digamos que o nome da sua coluna se chama BuySell e é do tipo bit
SELECT CASE WHEN BuySell = CAST(0 AS BIT) THEN 'Buy' ELSE 'Sell' AS BuySell FROM TableName

2) Você terá que desligar "Autogeneratecolumns" no DataGridView e configurar suas colunas manualmente. Se sua grade for somente leitura, eu adicionaria uma coluna de texto para sua coluna de compra/venda que mapeia para seu valor de bit. Em seguida, no evento Cell_Formatting para a grade, atualize o valor com base no bit. Algo como o abaixo:
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 sua grade precisar ser editável, configure uma DataTable que represente seus valores de Compra/Venda com um displaymember e valuemember. Vincule isso como a fonte de dados para uma coluna de caixa de combinação. Agora, carregar os dados exibirá corretamente Comprar/Vender na caixa de combinação e, para novas linhas, quando você selecionar um valor na lista suspensa, ele preencherá sua fonte de dados subjacente com o valor de bit correto.