2012-02-01 16 views
7

मेरे पास डेटाबेस से डेटा को पढ़ने के लिए डेटा रीडर है। मैं बिक्री तालिका से कुलप्रकाश पढ़ रहा हूं। मैं कुल मूल्य को 2 दशमलव स्थान के रूप में दिखाना चाहता हूं।विधि "ToString" के लिए कोई अधिभार नहीं है 1 तर्क

TotalPrice.Text = myReader["TotalPrice"].ToString("N2"); 

हालांकि मैं इस त्रुटि आई: विधि "ToString" के लिए कोई अधिभार 1 तर्क लेता क्या कोड के साथ गलत क्या है

कोड कुछ लिंक है?

+0

कुलप्रकाश कॉलम किस प्रकार का है? –

+0

umm, संख्यात्मक (18, 5) – user1125911

उत्तर

12

कि TotalPrice मान लिया जाये कि एक दशमलव स्तंभ है, और उस myReader किसी DataReader है:

TotalPrice.Text = myReader.GetDecimal(myReader.GetOrdinal("TotalPrice")).ToString("N2"); 

विचार है कि यहाँ myReader के इंडेक्सर (तुम क्या प्रयोग कर रहे हैं जब आप myReader["TotalPrice"] कहते हैं) एक वस्तु देता है। इसे करना है, क्योंकि यह संकलन समय पर नहीं जानता है कि कॉलम किस प्रकार है। .GetDecimal() का उपयोग करके, आप आश्वस्त कर रहे हैं कि आपको दशमलव मूल्य वापस या त्रुटि मिलती है।

.ToString ओवरलोड जो प्रारूप स्ट्रिंग लेता है, ऑब्जेक्ट पर नहीं, दशमलव पर घोषित किया जाता है। वस्तु का ToString कोई तर्क नहीं लेता है।

गेटऑर्डिनल के लिए आंतरिक कॉल फ़ील्ड की अनुक्रमणिका को नाम देता है- यदि आप इसे एकाधिक डेटा पंक्तियों के लिए लूप में कर रहे हैं, तो आप शायद इसे एक चर में कैश करना चाहते हैं।

8

स्ट्रिंग.फॉर्मैट() चाल करेगा। एफ 2 फिक्स्ड-पॉइंट नोटेशन 2 दशमलव स्थानों के साथ है।

TotalPrice.Text = string.Format("{0:F2}", (double)myReader["TotalPrice"]); 
संबंधित मुद्दे