2011-10-21 5 views
6

मैं कई वर्षों से LINQ से SQL का उपयोग कर रहा हूं, लेकिन यह पहली बार मैंने इस व्यवहार को देखा है।डेटाबेस पर खाली तारों के साथ LINQ से SQL में बग

मेरे पास कुछ कॉलम (varchar(15)) के साथ एक डीबी तालिका है जिसमें खाली स्ट्रिंग्स ('') हो सकती है। मैं इसे LEN(Column) चलाकर सत्यापित करता हूं और परिणाम की जांच 0 करता हूं।

अब जब मैं इसे LINQ2SQL से कॉल करता हूं, तो यह ऑब्जेक्ट फ़ील्ड को एक स्ट्रिंग (string.Length == 1) वाली स्ट्रिंग के साथ देता है।

डीबी पर NULL बनाने या स्ट्रिंग को ट्रिम करने जैसे कुछ कामकाज कर सकते हैं, लेकिन मैं जानना चाहूंगा कि कोई भी इससे पहले या अगर बग ज्ञात है (एमएस कनेक्ट पर रिपोर्ट किया गया है) । यदि नहीं, तो मैं इसकी रिपोर्ट करूंगा।

धन्यवाद।

+0

इस शून्य मूल्य और रिक्त स्ट्रिंग के बीच अंतर के लिए हो रहा यह है? पूर्व के लिए: एक फ़ाइल में आप एक नल स्ट्रिंग (फ़ाइल len = 0) और एक खाली स्ट्रिंग कैसे स्टोर करेंगे (फ़ाइल len = 0 भी फ़ाइल)। ओओ दुनिया में नल स्ट्रिंग और खाली स्ट्रिंग 2 अलग-अलग चीजें हैं जबकि डेटा दुनिया में वे समान हैं – Ankur

उत्तर

8

मुद्दा LEN समारोह के साथ है:

SELECT LEN(' ') 

रिटर्न 0 एसक्यूएल सर्वर में; यह कुल पिटा है।

लेकिन

SELECT DATALENGTH(' ') 

रिटर्न 1

+0

मीठे धन्यवाद! हमारे डीबी लोगों में से एक ने कुछ नया भी सीखा :) – leppie

+0

बस जोड़ने के लिए, पिछली सफेद जगह को अनदेखा करने के साथ 'लैन'। – leppie

+0

अब महीनों के लिए मुझे परेशान कर रहा है! – briantyler