2010-04-07 9 views
5

मेरे सी # कोड इस तरह दिखता है:मैं इस कॉलम मान को पूर्णांक में कैसे परिवर्तित कर सकता हूं?

myNum = dt.Columns[0]; 

myNum एक पूर्णांक है और डीटी एक datatable है। डीटी के कॉलम 0 में मान एक स्ट्रिंग ("12") है, लेकिन मैं इसे एक पूर्णांक में परिवर्तित करना चाहता हूं। मैं यह कैसे कर सकता हूँ? मैं कोशिश की है:

myNum = int.Parse(dt.Columns[0]); 

... लेकिन वह काम नहीं करता। कोई विचार?

+3

"लेकिन यह काम नहीं करता" ... क्या आप अधिक विशिष्ट हो सकते हैं? – Lazarus

+0

आप क्यों कहते हैं कि यह काम नहीं करता है? यह एक अपवाद फेंकता है? – PierrOz

+0

ज़रूर! जब मैं int.Parse का उपयोग करने का प्रयास करता हूं तो संपादक (विजुअल स्टूडियो) शिकायत करता है। कहते हैं "int.Parse (string) 'के लिए सबसे अच्छा ओवरलोडेड विधि मिलान कुछ अमान्य तर्क है"। – Kevin

उत्तर

25

मान पंक्तियों में संग्रहीत हैं और कॉलम नहीं हैं। ऐसा करें:

myNum = int.Parse(dt.Rows[0][0].ToString()); 
+0

बहुत बढ़िया! उसने ऐसा किया – Kevin

+0

int.TryParse (..) का उपयोग करना बेहतर होगा जबतक कि आप निश्चित नहीं हैं कि मान हमेशा एक int होगा। –

+0

हाँ, मुझे यकीन है कि मूल्य हमेशा एक int होगा। कॉलम एक स्ट्रिंग के बाद से – Kevin

0
Convert.ToInt32(dt.Rows[0][0]) 

ऊपर बेहतर होगा, यदि आप, उदाहरण के युगल (1.0) प्रकार की एक किस्म के साथ काम कर रहे हैं।

3

यदि पारसे अपवाद फेंकता है, तो इसका मतलब है डीटी। कॉलम [0] मान्य इनपुट नहीं है। Btw, डैरिन सही होना चाहिए: अपने मूल्य एक स्तंभ में संग्रहीत नहीं है, लेकिन आप अपवाद से बचना चाहते हैं, तो आप int.TryParse जो एक बूलियन कह देता है, तो रूपांतरण किया गया था या सफलतापूर्वक नहीं

संपादित उपयोग कर सकते हैं एक सेल में

+0

+1 TryParse के लिए +1 है। –

6

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

इसके अलावा, डेटा पंक्तियों में है, इसलिए आपके पास दो विकल्प वास्तव में (मैं पहली पसंद करते हैं) है,:

// This converts the object directly to an integer 
myNum = Convert.ToInt32(dt.Rows[0][0]); 

// This converts the object to a string, and then parses it into an integer 
myNum = int.Parse(dt.Rows[0][0].ToString()); 
+0

आपको नल के लिए परीक्षण करने की आवश्यकता हो सकती है या नहीं। – SeaDrive

1

उपयोग TryParse विधि मूल्य पार्स करने के लिए:

int myNum = 0; 
int.TryParse(dt.rows[0][0].ToString() , out myNum); 

साथ उपरोक्त कोड, यदि कोई त्रुटि उत्पन्न होती है, तो चर का मान शून्य होगा

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

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