2012-06-22 13 views
5

पर सहेजते समय स्ट्रिंग के अंत में स्पेस कैरेक्टर मेरे पास मेरी तालिका में nvarchar(50) फ़ील्ड है। उदाहरण के लिए जब मैं 12 character Length के साथ स्ट्रिंग को सहेजता हूं, तो यह 50 character length के साथ स्ट्रिंग को बचाता है। असल में यह स्ट्रिंग के अंत में एक स्पेस कैरेक्टर जोड़ता है। क्या मुझे एक और डेटा प्रकार चुनना चाहिए?डेटाबेस

tmp_Person.NameFamily = txt_NameFamily.Text.Trim(); 
PersonKBBSHDataContext.PersonInfos.InsertOnSubmit(tmp_Person); 
PersonKBBSHDataContext.SubmitChanges(); 

जब मैं तालिका के NameFamily फ़ील्ड में कोई स्ट्रिंग सीधे (SQL Server में) बचाने के लिए, सब कुछ ठीक है।

+0

नहीं कर सकते से बदला तुम सिर्फ इससे पहले कि आप नाम को असाइन पाठ बॉक्स मूल्य पर .Trim() का उपयोग करें? – CSharpened

+0

कुछ और गलत होना चाहिए। यदि आपके पास 12 सीआर स्ट्रिंग है और आप इसे nvarchar (50) में सहेजते हैं, तो डेटाबेस को अंत में रिक्त स्थान के साथ पैडिंग नहीं जोड़ना चाहिए। दो बार जांचें कि आप वास्तव में nvarchar (50) कॉलम में सहेज रहे हैं। –

+0

'tmp_Person.NameFamily'' .dbml' में 'स्ट्रिंग (System.String) 'है और डेटाबेस में सहेजने के लिए स्ट्रिंग भेजने के बाद समस्या है। मैं nvarchar (50) कॉलम में बचत कर रहा हूँ। – hamze

उत्तर

1

मुझे समस्या मिली। मैंने अभी अपनी तालिका को .dbml फ़ाइल में जोड़ा है और सब कुछ ठीक हो गया है।

1

इकाई की रूपरेखा का उपयोग कर रहे हैं, तो आपके NVARCHAR खेतों पर true को Fixed Length गुण सेट।

आप अभी भी Trim का उपयोग कर सकते हैं, हालांकि यह केवल textBox.Text मान को 'ठीक' करने के लिए है और डेटाबेस के साथ कुछ लेना देना नहीं है।

1

मुझे एक ही समस्या थी। मानचित्रण वर्ग में Nvarchar गुणों से IsFixedLength() निकालें और मेरी समस्या हल हो गई।

Me.Property(Function(t) t.Description).IsFixedLength().HasMaxLength(500) 

Me.Property(Function(t) t.Description).HasMaxLength(500) 
+0

एक ही समस्या थी। संबंधित एंटीटी टाइप में संपत्ति के लिए 'falseedx' फ़ाइल सेटिंग 'फिक्स्ड लम्बाई' विशेषता को 'झूठी' में ठीक करना था। समस्या आई क्योंकि कॉलम को पहले 'nchar' पर सेट किया गया था। – Dehalion