पर कास्ट त्रुटि मेरी साइट एंटरप्राइज़ लाइब्रेरी v 5.0 का उपयोग कर रही है। मुख्य रूप से डीएएबी। Executescalar, execedataset जैसे कुछ फ़ंक्शन अपेक्षित काम कर रहे हैं। समस्याओं दिखाई देते हैं जब मैं पाठकोंSQLDataReader
मैं इस समारोह मेरी कक्षा में शामिल हैं में है का उपयोग शुरू:
Public Function AssignedDepartmentDetail(ByVal Did As Integer) As SqlDataReader
Dim reader As SqlDataReader
Dim Command As SqlCommand = db.GetSqlStringCommand("select seomthing from somewhere where something = @did")
db.AddInParameter(Command, "@did", Data.DbType.Int32, Did)
reader = db.ExecuteReader(Command)
reader.Read()
Return reader
End Function
यह बहुत तरह मेरे aspx.vb से कहा जाता है:
reader = includes.AssignedDepartmentDetail(Did)
If reader.HasRows Then
TheModule = reader("templatefilename")
PageID = reader("id")
Else
TheModule = "#"
End If
इससे
प्रकार 'Microsoft.Practices.EnterpriseLibrary.Data.RefCountingDataReader' की वस्तु कास्ट करने के लिए टाइप करने में असमर्थ 'Sys: db.ExecuteReader लाइन पर निम्न त्रुटि tem.Data.SqlClient.SqlDataReader '।
क्या कोई इस काम को प्राप्त करने के बारे में कोई प्रकाश डाल सकता है। Entlib के माध्यम से पाठकों से निपटने के दौरान मैं हमेशा समस्याओं में भाग लेगा?
यह अनचाहे IDataReader को वापस कर देगा, जिसे आवश्यक होने पर प्रदाता विशिष्ट पाठक को डाला जा सकता है, जैसे SqlDataReader। आप सही हैं कि यह RefCountingDataReader नहीं है और ओपी की कास्टिंग त्रुटि का सामना नहीं करेगा। हालांकि, RefCountingDataReader कार्यान्वयन के मुख्य कारणों में से एक को इंगित करना महत्वपूर्ण है ... (अगली टिप्पणी देखें) ... – mdisibio
यदि कोई सिस्टम है। उपयोग में लेनदेन (उदाहरण के लिए ट्रांज़ेक्शनस्कोप() में लिपटे डेटाबेस कॉल) यह एक दूसरे लेनदेन के रूप में "dbConnection.Open()" देखेंगे, चाहे आप वास्तव में कुछ भी संशोधित कर रहे हों या नहीं। और दूसरे कनेक्शन के साथ, यह लेनदेन के प्रबंधन के लिए एमएस वितरित लेनदेन समन्वयक संलग्न करेगा। यह एक कोने का मामला है, लेकिन यदि ऐसा होता है, तो यह कुछ डेटा लाने के लिए एक जबरदस्त ओवरहेड होगा (और डीटीसी सेवा आपके सर्वर पर भी नहीं चल रही है)। – mdisibio