2013-03-05 30 views
10

में दिखाई देता है मेरे पास एक linq क्वेरी है जो GridView पर Page_Load पर पॉप्युलेट करती है। मैंने वर्णमाला के लिए वर्णों का for लूप बनाया है। LinkButton के .Command में LinkButton पॉप्युलेट करता है, मैं क्वेरी में समान पैरामीटर का उपयोग करके और नीचे की त्रुटि प्राप्त करने के साथ एक बहुत ही समान क्वेरी चला रहा हूं।अज्ञात प्रकार दोनों त्रुटि

प्रकार '<> f__AnonymousType2' दोनों 'ConcernContracts.dll' और 'System.Web.WebPages.Deployment.dll'

void lnkCharacter_Command(object sender, CommandEventArgs e) 
{ 
    try 
    { 
     var lbtn = (LinkButton)lbl_Alphabet.FindControl("lnkCharacter" + e.CommandArgument); 
     var id = lbtn.Text; 

     using (var db = new dbDataContext()) 
     { 
      var query = from n in db.tbl_Providers 
         where ((n.provider_Name.StartsWith(id)) && (n.provider_Deleted == false)) 
         select new 
         { 
          n.ProviderId, 
          n.provider_Name 
         }; 

      grd_Provider.DataSource = null; 
      grd_Provider.DataSource = query; 
      grd_Provider.DataBind(); 
     } 
    } 
    catch (SystemException ex) { } 
} 

LoadGrid में मौजूद है(), एक ही है लेकिन यह .StartsWith() स्थिति का उपयोग नहीं करता है। क्या आपके पास कोई समस्या है कि त्रुटि को हल कैसे करें?

त्रुटि अपवाद नहीं फेंकता है, लेकिन यह किसी भी प्रश्न के लिए ग्रिड को पॉप्युलेट नहीं करता है। त्रुटि निम्न पंक्ति में खोजा गया था:

आपका इसी तरह के दो प्रश्नों शायद उस गुमनाम प्रकार आप LINQ क्वेरी में चयन कर रहे हैं पर अतिव्यापी हैं: grd_Provider.DataSource = query;

+0

क्या एक ही समाधान में परियोजनाएं हैं? क्या उनके पास एक ही नामस्थान है? –

+1

पुनर्निर्माण, स्वच्छ, निर्माण। – Bastardo

+0

हां वे एक ही समाधान में हैं। प्रश्न एक ही पृष्ठ पर हैं। – StudentRik

उत्तर

2

बदलें अपने ग्रिड डेटा स्रोत

grd_Provider.DataSource = query.ToList(); 
grd_Provider.DataBind(); 

या बनाने सूची आबद्ध हो जाता है प्रदाता आईडी और नाम दो गुण होने और आउटपुट से इस सूची को बांधें।

List<Entities> abc=query.ToList(); 
grd_Provider.DataSource =abc; 
grd_Provider.DataBind(); 
1

यहाँ एक सुझाव है। ,

select new 
     { 
     Id = n.ProviderId, 
     Name = n.provider_Name 
     }; 

आप ऐसा करते हैं, अनाम प्रकार अब और संघर्ष नहीं करना चाहिए, क्योंकि एक तो आप को संशोधित नहीं का उपयोग करेगा: एक और प्रश्नों का केवल एक पर, इस तरह देखने के लिए का चयन करें नई बदलने डिफ़ॉल्ट नाम

शुभकामनाएं, और मुझे उम्मीद है कि इससे मदद मिलती है!

+0

मैंने पृष्ठ पर एक और ग्रिड बनाया है और उस ग्रिड को घुमाने की कोशिश की लेकिन यह या तो काम नहीं करता है। मुझे आश्चर्य हुआ कि क्या यह था कि क्वेरी पहले से ही 'लोडग्रिड()' पर चल रही थी, यही कारण है कि यह पॉप्युलेट नहीं करता है। मुझे इस फ़िल्टर को प्राप्त करने का एक अलग तरीका चाहिए। – StudentRik

0

Convert यह एक List या IEnumberable में, तुम बस डेटा स्रोत gridview के रूप में गुमनाम वस्तुओं पारित नहीं कर सकते हैं। query.ToList();

आप

IEnumerable<object> 

को वापसी प्रकार परिवर्तित कर सकते हैं यह किसी भी गुमनाम प्रकार धारण कर सकते हैं और आसानी से के रूप में डेटा स्रोत

+0

क्या आप इसे समझा सकते हैं? [लिंक INumerable है।] (Http://msdn.microsoft.com/en-us/library/bb397919.aspx) 'शब्द "LINQ से ऑब्जेक्ट्स" शब्द किसी भी IENumerable या IEnumerable संग्रह के साथ LINQ क्वेरीज़ के उपयोग को संदर्भित करता है ' – Harrison

-1

लिंक कुछ कार्यक्षमताओं जैसे .toDays(), addDays(), स्टार्ट्सविथ() का समर्थन नहीं करता है। तो आपको क्या करने की ज़रूरत है, सबसे पहले परिणाम का उपयोग किए बिना परिणाम प्राप्त करें .tartsWith() फिर परिणाम स्वरूप फ़िल्टर करने के लिए कुछ कार्यक्षमता लागू करने का प्रयास करें।

0

मेरे पास एक ही समस्या थी और मैंने अज्ञात प्रकार में एक और संपत्ति जोड़ा और इसे हल किया।

संबंधित मुद्दे