आप इसे 2 में से 1 तरीके से संभाल सकते हैं।
1) डेटा को थोड़ा सा वापस करने के बजाय, अपनी क्वेरी में कास्टिंग करें ताकि वह मूल्य के आधार पर एक स्ट्रिंग के रूप में खरीदें/बेचें। यह वास्तव में तभी अच्छा काम करेगा जब आपका ग्रिड केवल-पढ़ने के लिए हो। यदि आपको डेटा जोड़ने/संपादित करने में सक्षम होने की आवश्यकता है, तो आपके खरीदें/बिक्री को थोड़ा सा परिवर्तित करना और यह लागू करना मुश्किल हो जाएगा कि उपयोगकर्ता केवल खरीद/बिक्री दर्ज कर सकता है। यदि आपको डेटा जोड़ने/संपादित करने की आवश्यकता है तो आप शायद विधि 2 का उपयोग करना चाहेंगे।
जैसे मान लें कि आपके कॉलम का नाम BuySell है और यह बिट टाइप का है
SELECT CASE WHEN BuySell = CAST(0 AS BIT) THEN 'Buy' ELSE 'Sell' AS BuySell FROM TableName
2) आपको 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";
}
}
}
यदि आपके ग्रिड को संपादन योग्य बनाने की आवश्यकता है, तो एक डेटाटेबल सेट करें जो एक डिस्प्लेमेम्बर और वैल्यूमेम्बर के साथ आपके खरीदें / बेचें मूल्यों का प्रतिनिधित्व करता है। एक combobox कॉलम के लिए डेटा स्रोत के रूप में बाध्य करें। अब डेटा लोड करने से कॉम्बोबॉक्स में खरीदें/बेचना सही ढंग से प्रदर्शित होगा और नई पंक्तियों के लिए जब आप ड्रॉप-डाउन से कोई मान चुनते हैं तो यह आपके अंतर्निहित डेटा स्रोत को सही बिट मान के साथ पॉप्युलेट करेगा।