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.