2013-01-11 28 views
5

मैं अब इस प्रश्न का उत्तर आजकल ढूंढने का प्रयास कर रहा हूं और मुझे विश्वास करना मुश्किल लगता है कि यह नहीं किया जा सकता है।डेटा पुनर्प्राप्त

मैं DataSet/DataTable जब एक SqlDataSource.Select विधि ASP.NET रन-टाइम द्वारा स्वचालित रूप से कहा जाता है जब एक पृष्ठ बनाया जा रहा है बनाया गया है कि करने के लिए करना चाहते हैं।

मुझे पता है कि मैं इसे कोड में चला सकता हूं लेकिन यह डेटाबेस की दूसरी यात्रा करता है और मैं वास्तव में इससे बचना चाहता हूं। मैं जो उदाहरण देता हूं, वह आपको कोड के पीछे चयन विधि निष्पादित करने के लिए कहता है।

क्या पहले से ही पुनर्प्राप्त किया गया डेटा एक्सेस करने का कोई तरीका है?

+1

तुम्हें पता है, मुझे लगता है कि एक बार लगाने के लिए बाहर, साल पहले की कोशिश की, और फैसला किया कि यह सिर्फ बाँध आसान था कोड-कोड में कोड इसलिए मुझे डेटा सेट तक आसानी से पहुंच मिली। अगर कोई जानता है कि यह कैसे करना है, तो यह बदल सकता है कि मैं आगे बढ़ने वाले समान situaitons कैसे पहुंचता हूं। पूछने के लिए +1। – David

+2

मैं उस नियंत्रण का बिल्कुल उपयोग नहीं करता। इसके बजाय ADO.NET (f.e। 'DataAdapter.Fill (DataTable)') का उपयोग करें या वास्तविक ओआरएम मैपर जैसे NHibernate या Entity Framework। वैसे भी, यह स्पष्ट नहीं है कि आप क्यों सोचते हैं कि "कोड पीछे डेटाबेस के लिए दूसरी यात्रा करता है"। 'If ​​(! IsPostBack) 'का प्रयोग करें। –

+0

वास्तव में नियंत्रण पर कोई विकल्प नहीं है। मुझे किसी मौजूदा पृष्ठ में बदलाव करने की आवश्यकता है और इसे फिर से लिखने की लक्जरी नहीं है। जब आप SqlDataSource पर चयन विधि को कॉल करते हैं तो यह Microsoft http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.sqldatasource.select.aspx – dscarr

उत्तर

0

आप इस कोड के साथ की कोशिश कर सकते हैं - ToTable पद्धति पर आधारित

DataView view = (DataView)SqlDataSource.Select(...); 
DataTable table = view.ToTable(); 

लिंक: http://msdn.microsoft.com/en-us/library/wec2b2e6.aspx

+0

के अनुसार डेटाबेस की यात्रा करता है वह कोड है जिसके बारे में मैं बात कर रहा हूं। SqlDataSource पर चयन विधि निष्पादित करने से डेटाबेस से डेटा पुनर्प्राप्त होता है। (http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.sqldatasource.select.aspx) मैंने इसे कई बार उपयोग किया है लेकिन इस मामले में मैं उस दूसरी यात्रा से बचना चाहता हूं । – dscarr

+0

क्या आप –

+0

"दूसरी यात्रा से बचें" समझा सकते हैं, इसका तात्पर्य है कि आपको पहले से ही डेटा मिल गया है। उस स्थिति में, क्या आप डमी 'डेटासोर्स' प्रदान करके प्रीरेंडर के दौरान 'ऑनसेलेक्ट()' पर कॉल को रोक सकते हैं, और परिणामी डेटा के लिए अपना स्वयं का (कैश?) डेटासेट बदल सकते हैं? –