Anda dapat menanganinya dengan 1 dari 2 cara.
1) Alih-alih mengembalikan data sedikit, lakukan casting dalam kueri Anda untuk mengembalikan Beli/Jual sebagai string berdasarkan nilainya. Ini hanya akan benar-benar berfungsi dengan baik jika kisi Anda hanya-baca. Jika Anda harus dapat menambahkan/mengedit data, akan menjadi berantakan untuk mengonversi Beli/Jual Anda kembali menjadi sedikit dan memaksakan bahwa pengguna hanya dapat memasukkan beli/jual. Anda mungkin ingin menggunakan metode 2 jika Anda perlu menambahkan/mengedit data.
misalnya misalkan nama kolom Anda disebut BuySell dan bertipe bit
SELECT CASE WHEN BuySell = CAST(0 AS BIT) THEN 'Buy' ELSE 'Sell' AS BuySell FROM TableName
2) Anda harus mematikan "Autogeneratecolumns" pada DataGridView dan mengatur kolom Anda secara manual. Jika kisi Anda hanya-baca, saya akan menambahkan kolom teks untuk kolom beli/jual Anda yang memetakan ke nilai bit Anda. Kemudian di acara Cell_Formatting untuk kisi, perbarui nilai berdasarkan bit. Sesuatu seperti di bawah ini:
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";
}
}
}
Jika kisi Anda perlu diedit, siapkan DataTable yang mewakili nilai Beli/Jual Anda dengan anggota tampilan dan anggota nilai. Ikat itu sebagai sumber data untuk kolom kotak kombo. Sekarang memuat data dengan benar akan menampilkan Beli/Jual di kotak kombo dan untuk baris baru saat Anda memilih nilai dari tarik-turun, itu akan mengisi sumber data pokok Anda dengan nilai bit yang benar.