Можете да се справите с него по 1 от 2 начина.
1) Вместо да връщате данните като бит, направете прехвърлянето във вашата заявка, за да върнете Buy/Sell като низ въз основа на стойността. Това наистина ще работи добре само ако вашата мрежа е само за четене. Ако трябва да можете да добавяте/редактирате данни, би било объркващо да преобразувате вашите Buy/Sell обратно в бит и да наложите потребителят да може да въвежда само buy/sell. Вероятно бихте искали да използвате метод 2, ако трябва да добавите/редактирате данни.
напр. да кажем, че името на вашата колона се нарича BuySell и е от тип bit
SELECT CASE WHEN BuySell = CAST(0 AS BIT) THEN 'Buy' ELSE 'Sell' AS BuySell FROM TableName
2) Ще трябва да изключите „Autogeneratecolumns“ в DataGridView и да настроите колоните си ръчно. Ако вашата мрежа е само за четене, бих добавил текстова колона за вашата колона за покупка/продажба, която съответства на вашата битова стойност. След това в събитието Cell_Formatting за мрежата актуализирайте стойността въз основа на бита. Нещо като по-долу:
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";
}
}
}
Ако вашата мрежа трябва да може да се редактира, настройте DataTable, която представя вашите стойности за покупка/продаване с член на дисплея и член на стойност. Свържете това като източник на данни за колона с разгъващ се списък. Сега зареждането на данните ще покаже правилно Купува/Продава в падащия списък и за нови редове, когато изберете стойност от падащото меню, той ще попълни основния ви източник на данни с правилната битова стойност.