c# महत डेटाग्रिड दृश्य स्तंभ अभिव्यक्ति से कस्टम विधि कॉल करना



लिखित अभिव्यक्ति क्या है (1)

c #, vs2008 winforms का उपयोग करना

मेरे पास डेटाग्रिड दृश्य है जो मैं प्रोग्रामिक रूप से बाध्यकारी स्रोत के लिए बंधन कर रहा हूं, जो 1 तालिका के साथ एक डाटासेट के लिए बाध्य है।

SQL एडिटर का उपयोग करते हुए डेटासेट भरने के बाद, मैं डेटासेट पर एक नया कॉलम जोड़ना चाहता हूं, और नए कॉलम में इसे कॉल में एक कस्टम विधि से प्राप्त परिणाम के रूप में आबाद किया गया है।

कोड ईग बीहोल है लेकिन मुझे "अभिव्यक्ति में अनिर्धारित फ़ंक्शन कॉल मिलता है। यह टेस्ट ()

क्या यह कॉलम की अभिव्यक्ति में तरीकों को कॉल करने की अनुमति है

धन्यवाद किसी भी मदद के लिए धन्यवाद चीयर्स

this.dsProdOrdLst1.ProdOrder.Columns.Add("sOrderType", typeof(string), 
    "this.Test(order_type)"); // order_type is another column in the dataset

फॉर्म क्लास में कहीं और विधि है

public int Test(int orderType)
{
    return 10; //return a test value
}

https://code.i-harness.com


AFAIK, इन भाव ( एडीओनेट एक्सपीस के रूप में जाना जाता है) किसी तरह के उपयोगकर्ता परिभाषित कार्यों को कॉल करने का कोई तरीका नहीं है। हालांकि नए स्तंभ को मैन्युअल रूप से पॉप्युलेट करने के लिए तुच्छ होना चाहिए:

this.dsProdOrdLst1.ProdOrder.Columns.Add("sOrderType", typeof(string));

foreach (DataRow row in dsProdOrdLst1.ProdOrder.Rows)
{
    row["sOrderType"] = Test((int) row["order_type"]);
}

वैकल्पिक रूप से, आप एडीओ। नेट अभिव्यक्ति में अपने पूरे फ़ंक्शन को कार्यान्वित करने में सक्षम हो सकते हैं, लेकिन आप वास्तव में केवल बहुत ही साधारण कार्यों के लिए ऐसा करना चाहते हैं, अन्यथा यह एक गलती होगी:

IIF(order_type = 0, 'Mail', IIF(order_type = 1, 'Phone', 'Online'))

DataColumn.Expression प्रलेखन में समर्थित फ़ंक्शंस की सूची है (यह खोजने के लिए बहुत दूर तक स्क्रॉल करें)।





expression