2009-06-04 36 views
5

बढ़ाने के लिए मुझे टाइमआउट अवधि बढ़ाना है। मेरा कोड है।टाइमआउट अवधि

Private Function GetConnectionInstance() As SqlConnection 
    Dim objConn As SqlConnection 
    Dim strConnection As String 
    strConnection = ConfigurationSettings.AppSettings("conn") 

    Try 
     objConn = New SqlConnection(strConnection) 
    Catch ex As Exception 
    End Try 

    Return objConn 
End Function 

टाइमआउट अवधि बढ़ाने के लिए मुझे ऊपर क्या कोड जोड़ना है।

+0

इसके अलावा उपयोग/कैच का उपयोग करने के बजाय। यदि दोनों स्थितियों में यह आपके कनेक्शन को बंद कर देगा: अपवाद या आपके कोड के समाप्त होने के बाद – abatishchev

+0

क्या आपका मतलब डेटाबेस से कनेक्ट करने के लिए टाइमआउट या प्रत्येक क्वेरी को निष्पादित करने के लिए टाइमआउट है? – Guffa

+0

@abatishchev, 'उपयोग' का उपयोग करते समय आमतौर पर एक अच्छी सिफारिश होती है, इस मामले में यह काम नहीं करेगा क्योंकि SqlConnection ऑब्जेक्ट विधि से बाहर कर दिया गया है। –

उत्तर

7

आप अपने कनेक्शन स्ट्रिंग में अगले आइटम जोड़ने की जरूरत:

कनेक्शन टाइमआउट = 30;

आप केवल लक्ष्य कनेक्शन के लिए समय समाप्त बदलने के लिए, पूरे आवेदन में नहीं की जरूरत है, आगे क्या:

Dim connString as String = ConfigurationSettings.AppSettings("conn") 
Dim builder As New SqlConnectionStringBuilder(connString) 
builder.ConnectTimeout = 30; 
Dim connection = New SqlConnection(builder.ToString()) 
+0

यह .NET 3.5 में दिखाई देता है, कि SqlConnectionStringBuilder क्लास में अब टाइमआउट प्रॉपर्टी नहीं है। – eidylon

+0

@Eidylon: यह संपत्ति नाम कनेक्टटाइमआउट है http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnectionstringbuilder.connecttimeout.aspx – abatishchev

3

निम्नलिखित का प्रयास करें:

objConn.ConnectionTimeout = 600

कनेक्शन पर सेट करने के बजाय, आप कमांड टाइमआउट को एसक्यूएल कॉमांड पर सेट कर सकते हैं:

objCmd.CommandTimeout = 600 
+1

SqlConnection.ConnectionTimeout केवल-पढ़ने योग्य संपत्ति http: // msdn है .microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectiontimeout.aspx – abatishchev

+1

ओई, मेरा बुरा। मैं SqlCommand.CommandTimeout के बारे में सोच रहा था, जो लिखने योग्य है। – jrista

1

आप "कनेक्शन टाइमआउट = 30" जोड़कर कनेक्शन स्ट्रिंग को बदल सकते हैं। डिफ़ॉल्ट 15 और यह सेकंड में है। हालांकि यह जानना महत्वपूर्ण है कि टाइमआउट वास्तव में कहां होता है। आपको यह विषय देखना चाहिए: Timeout not being honoured in connection string

0

मुझे पता चला कि इस समस्या का उत्तर वास्तव में समय-समय पर नहीं था, ऐसा इसलिए था क्योंकि एसक्यूएलकनेक्शन ऑब्जेक्ट लूप में बंद नहीं किया जा रहा था।

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