2010-12-16 16 views
5

मैं लिंकटेक को डेटाटेबल का उपयोग कर रहा हूं। मैं क्लॉज में ऑपरेटर की तरह कैसे आवेदन कर सकता हूं। मैं डेटा पर एक खोज करना चाहता हूं जैसे कि हमारे पास एसक्यूएल में ऑपरेटर है।लिंक्स में डेटाटेबल में ऑपरेटर की तरह?

मैंने निम्न कोड की खोज की और कोशिश की लेकिन मुझे एक त्रुटि मिली: विधि 'बूलियन लाइक (System.String, System.String)' क्लाइंट पर उपयोग नहीं किया जा सकता है; यह केवल एसक्यूएल के अनुवाद के लिए है।

var details = from addresses in dt.AsEnumerable() 
    where SqlMethods.Like(prefixText, prefixText + "%") || SqlMethods.Like(prefixText, "%" + prefixText + "%") 
    select (string) addresses["Details"];      

return details.ToArray(); 

उत्तर

2

चाहेंगे इस लिंक मदद? Linq to SQL like Operator

+0

यह पोस्ट 2 तरीके दिखाता है। .contain सही परिणाम नहीं देता है और SqlMethods केवल SQL के साथ काम करता है। मान लीजिए मेरे पास एबीसी, एबीसी और कंपनी, बीएसी, एबीसी एसोसिएट्स वैल्यू हैं। उपयोग में बीएसी भी शामिल है, अगर मैं पास करता हूं तो इसे वापस लौटा देना चाहिए लेकिन बीएसी नहीं। कृपया गाइड करें। - – haansi

4

आपका सबसे अच्छा शर्त

where yourRegex.IsMatch(row.SomeValue) 

एक regex के रूप में यह फिर से लिखने के लिए एक प्रयोग किया जा सकता है या बस शुरू होता है-साथ प्रश्नों अगर यह होता है:

where row.SomeValue.StartsWith(prefix) 
+0

धन्यवाद मार्क, मैं माफी मैं regulare भाव के बारे में पता नहीं कर रहा हूँ कर रहा हूँ। क्या आप कृपया इस एसक्यूएल के लिए नियमित अभिव्यक्ति क्या करेंगे, जहां क्लास्यू "जहां कंपनी नाम @ स्ट्रिंग + '%' या कंपनी नाम जैसे '%' + @ string + '%'"; धन्यवाद – haansi

+1

@ हांसी - वहां regex के लिए कोई ज़रूरत नहीं है; बस पंक्ति का उपयोग करें। कॉम्पनीनाम। सामग्री (कुछ नाम) –

+0

@Marc मैंने इसे पहले कोशिश की लेकिन यह सही परिणाम नहीं दे रहा है। मान लीजिए मेरे पास एबीसी, एबीसी और कंपनी, बीएसी, एबीसी एसोसिएट्स वैल्यू हैं। इसका उपयोग करने से बीएसी भी वापस आती है, अगर मैं पास करता हूं तो इसे वापस लौटा देना चाहिए लेकिन बीएसी नहीं। कृपया गाइड करें। – haansi

3
var details = from addresses in dt.AsEnumerable() 
       where addresses.Field<string>("Details").StartsWith(prefixText) 
       || addresses.Field<string>("Details").Contains(prefixText) 
       select addresses.Field<string>("Details"); 
+0

में सही परिणाम नहीं आते हैं। मान लीजिए मेरे पास एबीसी, एबीसी और कंपनी, बीएसी, एबीसी एसोसिएट्स वैल्यू हैं। इसका उपयोग करने से बीएसी भी वापस आती है, अगर मैं पास करता हूं तो इसे वापस लौटा देना चाहिए लेकिन बीएसी नहीं। कृपया गाइड करें। - – haansi

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