Du kan hantera det på ett av två sätt.
1) Istället för att returnera data lite, gör castingen i din fråga så att den returnerar Köp/Sälj som en sträng baserat på värdet. Detta kommer bara att fungera bra om ditt rutnät är skrivskyddat. Om du behöver kunna lägga till/redigera data skulle det bli rörigt att konvertera ditt köp/sälj tillbaka till lite och genomdriva att användaren bara kan ange köp/sälj. Du skulle förmodligen vilja använda metod 2 om du behöver lägga till/redigera data.
t.ex. låt oss säga att ditt kolumnnamn heter BuySell och är av typen bit
SELECT CASE WHEN BuySell = CAST(0 AS BIT) THEN 'Buy' ELSE 'Sell' AS BuySell FROM TableName
2) Du måste stänga av "Autogeneratecolumns" på DataGridView och ställa in dina kolumner manuellt. Om ditt rutnät är skrivskyddat, skulle jag lägga till en textkolumn för din köp/sälj-kolumn som mappar till ditt bitvärde. Uppdatera sedan värdet baserat på biten i händelsen Cell_Formatting för rutnätet. Något liknande nedan:
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";
}
}
}
Om ditt rutnät måste kunna redigeras, ställ in en datatabell som representerar dina köp-/säljvärden med en displaymember och valuemember. Bind det som datakälla för en combobox-kolumn. När du laddar informationen kommer Köp/Sälj att visas korrekt i kombinationsrutan och för nya rader när du väljer ett värde från rullgardinsmenyn kommer det att fylla i din underliggande datakälla med rätt bitvärde.