ASP.net LINQ on DataView -


जब मेरे पास डेटाव्यू ऑपरेशन होता है

  एन्युमररेरव कॉलिलेशन & lt; DataRow & gt; क्वेरी = से _table.AsEnumerable () के क्रम में जहां order.Field & lt; Int32 & gt; ("key") & gt; 2 & amp; amp; आदेश। फ़ील्ड & lt; int32 & gt; ("कुंजी") & lt; 4 का चयन करें आदेश। फ़ील्ड & lt; Int32 & gt; ("कुंजी") = 1000, आदेश। फ़ील्ड & lt; स्ट्रिंग & gt; ("नाम");  

मैं उपरोक्त अभिव्यक्ति नहीं बना सकता।

जब मैं कोशिश करता हूं

  नया चुनें {key = 1000, name = order .फ़िल्ड & lt; स्ट्रिंग & gt; ("name")};  

मुझे मिल गया

  रूपांतरित रूप से '' System.Data.EnumerableRowCollection & lt; AnonymousType # 1 & gt; के लिए 'System.Data.EnumerableRowCollection & lt; System.Data.DataRow & gt;'  

सही क्वेरी कैसे बनानी है? मेरा कार्य 1000 के साथ की कुंजी को बदलने और नाम के रूप में छोड़ देना है।

जब आप नया {कुंजी = 1000, नाम = आदेश का चयन करें। फ़ील्ड & lt; स्ट्रिंग & gt; ("नाम")} , आप एक नया अनाम प्रकार बना रहे हैं जिसका DataRow के साथ कुछ भी नहीं है
इसलिए, आप इसे EnumerableRowCollection & lt; DataRow & gt;

के लिए निर्दिष्ट नहीं कर सकते, संकलक त्रुटि को ठीक करने के लिए, EnumerableRowCollection & lt; DataRow & gt; var


हालांकि, यह आपकी अंतर्निहित समस्या को ठीक नहीं करेगा।
डेटा को संशोधित करने के लिए LINQ का उपयोग नहीं किया जा सकता।

आप एक सामान्य foreach पाश का उपयोग करने की आवश्यकता है और कुंजी मूल्यों को इस तरह सेट करें:

  var प्रभावित रोज़ = _table में क्रम से। ) जहां आदेश। फ़ील्ड & lt; Int32 & gt; ("कुंजी") & gt; 2 & amp; amp; आदेश। फ़ील्ड & lt; int32 & gt; ("कुंजी") & lt; 4 चयन पंक्ति; विदेशी मुद्रा (प्रभावित रोशों में डेटारॉ पंक्ति) {पंक्ति ["कुंजी"] = 1000; }  

यह कोड मूल DataRow s को मूल _table में संशोधित करेगा।
अगर आप संशोधित नहीं करना चाहते हैं मूल _table , आप इसे DataTable.Copy ()


Comments