2009-06-04 16 views
5

arttırmak.Ben zaman aşımı period.Following benim kodudur artırmak zorunda zaman aşımı süresi

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 

Zaman aşımı süresini artırmak için yukarıdaki kodu ekleyeceğim kod.

+0

Ayrıca, Try/Catch kullanmak yerine kullanma. Her iki durumda da bağlantıyı kapatır: bir istisna veya kodunuz bittikten sonra – abatishchev

+0

Veritabanına bağlanma zaman aşımı mı yoksa her bir sorguyu yürütmek için zaman aşımı mı? – Guffa

+0

@abatishchev, 'using' kullanırken genellikle iyi bir öneridir, bu durumda SqlConnection nesnesi metottan çıkarıldığı için işe yaramaz. –

cevap

7

Sen bağlantı dizesine sonraki öğe eklemek gerekir: = 30

Bağlantı Zaman Aşımı; Eğer tamamı değil uygulamada, sadece hedef bağlantısı için Zaman Aşımı değiştirmeniz gerekirse

sonraki yapın:

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'de, SqlConnectionStringBuilder sınıfının artık bir Zaman Aşımı özelliği içermediğine görünür. – eidylon

+0

@eidylon: bu özellik adlarını ConnectTimeout http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnectionstringbuilder.connecttimeout.aspx – abatishchev

3

Aşağıdakileri deneyin:

objConn.ConnectionTimeout = 600

Bağlantıda ayarlamak yerine, CommandTimeout'u SqlCommand:

üzerinde ayarlayabilirsiniz.
objCmd.CommandTimeout = 600 
+1

SqlConnection.ConnectionTimeout salt okunur özelliktir http: // msdn .microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectiontimeout.aspx – abatishchev

+1

Oy, benim kötüyüm. Yazılabilir SqlCommand.CommandTimeout'u düşünüyordum. – jrista

1

Bağlantı dizgisini "Bağlantı Zaman Aşımı = 30" ekleyerek değiştirebilirsiniz. Varsayılan 15 ve saniye cinsindendir. Ancak önemli olan zaman aşımının gerçekte gerçekleştiği yerdir. Bu konuyu kontrol etmelisiniz: Timeout not being honoured in connection string.

0

SqlConnection nesnesinin döngülerde kapatılmaması nedeniyle bu sorunun yanıtının aslında zaman aşımı olmadığını buldum.