2008-08-26 20 views
24

में टाइमआउट को सम्मानित नहीं किया जा रहा है मेरे पास एक लंबा चल रहा SQL कथन है जिसे मैं चलाने के लिए चाहता हूं, और इससे कोई फर्क नहीं पड़ता कि मैंने अपनी कनेक्शन स्ट्रिंग के "टाइमआउट =" खंड में क्या रखा है, यह हमेशा 30 सेकंड के बाद समाप्त होता है।कनेक्शन स्ट्रिंग

मैं सिर्फ SqlHelper.ExecuteNonQuery() वहाँ कुछ और है कि मेरे समय समाप्ति अधिभावी किया जा सकता है का उपयोग कर रहा यह निष्पादित करने के लिए, और दे इसे खोलने कनेक्शन की देखभाल, आदि

है, या एसक्यूएल सर्वर इसे अनदेखा करने के लिए पैदा कर रहा? मैंने क्वेरी पर प्रोफाइलर चलाया है, और जब मैं इसे प्रबंधन स्टूडियो में चलाता हूं, तो मेरे कोड में बनाम ट्रेस किसी भी अलग दिखाई नहीं देता है।

प्रबंधन स्टूडियो लगभग एक मिनट में क्वेरी को पूरा करता है, लेकिन टाइमआउट सेट 300 या 30000 के साथ भी, मेरा कोड अभी भी 30 सेकंड के बाद समाप्त हो जाता है।

उत्तर

38

आप अपने कनेक्शन स्ट्रिंग में टाइमआउट सेट करने के लिए क्या उपयोग कर रहे हैं? स्मृति से "कनेक्शनटाइमआउट" और केवल सर्वर पर कनेक्ट करने के समय को प्रभावित करता है।

प्रत्येक व्यक्तिगत कमांड में एक अलग "कमांडटाइमआउट" होता है जो आप खोज रहे हैं। यह सुनिश्चित नहीं है कि SQLHelper कैसे लागू करता है।

+1

इतना स्पष्ट! लेकिन उसने मुझे जवाब देने में दो घंटे बर्बाद करने से नहीं रोका .... धन्यवाद! – Aaron

14

कनेक्शन स्ट्रिंग में टाइमआउट के अलावा, SQL कमांड की टाइमआउट संपत्ति का उपयोग करने का प्रयास करें। SqlCommand क्लास का उपयोग करके नीचे एक सी # नमूना है। इसका समतुल्य आपके द्वारा उपयोग किए जा रहे कार्यों पर लागू होना चाहिए।

SqlCommand command = new SqlCommand(sqlQuery, _Database.Connection); 
command.CommandTimeout = 0; 
int rows = command.ExecuteNonQuery(); 
संबंधित मुद्दे