2011-12-28 10 views
33

से मैं SqlDataReader.GetValue विधि का उपयोग डीबी से मूल्यों को पढ़ने के लिए:कैसे SqlDataReader.GetValue से डेटा प्राप्त करने के स्तंभ नाम

Log.WriteLine("Value of CompanyName column:" + thisReader.GetValue(1)); 

पैरामीटर के रूप में getValue स्तंभ के सूचकांक मिलता है। मैं कॉलम नाम के बजाय सूचकांक कैसे निर्दिष्ट कर सकता हूं?

उत्तर

62
Log.WriteLine("Value of CompanyName column:" + thisReader["CompanyName"]); 
+5

मैं निम्नलिखित समाधान के रूप में इस्तेमाल किया - 'Log.WriteLine (" CompanyName स्तंभ का मान: "+ thisReader.GetValue (thisReader.GetOrdinal (" CompanyName "))); ' क्या [] मतलब है? – algot

+0

@algot यह एक अनुक्रमित संपत्ति है, http://msdn.microsoft.com/en-us/library/aa288464.aspx या http://msdn.microsoft.com/en-us/library/2549tw02.aspx –

+1

I देखें। सिंटैक्स को समझें "thisReader [" CompanyName "])। यह किसी भी तरह से तार्किक नहीं है। तार्किक" thisReader.fields ("CompanyName") होगा। मान "। लेकिन मैं किसके लिए न्याय कर रहा हूं ... – tmighty

41

तुम भी ऐसा कर सकते हैं।

//find the index of the CompanyName column 
int columnIndex = thisReader.GetOrdinal("CompanyName"); 
//Get the value of the column. Will throw if the value is null. 
string companyName = thisReader.GetString(columnIndex); 
+0

मैं सोच रहा था कि इस मामले में पाठक से डेटा को सीधे पढ़ने के लिए और अधिक लाभ हो सकता है क्योंकि यह रीडर ["कंपनी नाम"] है। क्या आप इसके लिए कोई विशिष्ट मामला दे सकते हैं? धन्यवाद बहुत बीटीडब्ल्यू – curiousBoy

+1

@curiousBoy इसे इस तरह से कर रहा है क्या जांचना आसान हो जाएगा कॉलम मौजूद है, यह भी सुनिश्चित करता है कि आप जिस मान का चयन कर रहे हैं वह सही डेटाफॉर्मैट में है Get Getring, GetInt32 यह केवल उस ऑब्जेक्ट को वापस नहीं करता है जिसे आपको डालना है। यही कारण है कि मैं आपकी टिप्पणी के लिए –

+0

@ डेविडमोलिनेक्स thx का उपयोग करूंगा, जहां तक ​​मैं आपकी व्याख्या से समझता हूं, यह मूल रूप से स्ट्रिंग के लिए "शून्य जांच" करता है और मान शून्य होने पर त्रुटि उत्पन्न करता है। इससे मुझे यह भी बात मिलती है कि यह सिर्फ स्ट्रिंग के प्रकार के लिए है। इसके अलावा, उदाहरण के लिए: "int productQuantiy = thisReader [" ProductQuantity "]" अगर उत्पाद क्वांटिटी के पास वैध int मान नहीं है, तो यह एक त्रुटि फेंक देगा, है ना? फिर से thx। – curiousBoy

-3

thisReader.GetString (पूर्णांक columnIndex)

+0

के अंदर GetString (int) को कॉल करें कृपया इस उत्तर को वास्तव में * समाधान * हल करने के बारे में कुछ स्पष्टीकरण जोड़ें। – ekad

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