我有以下VB.Net控制檯應用程序子程序,它從表中讀取電子郵件並嘗試發送它們,如果它發送成功,它將更新與發送的相同的數據庫時間。簡單控制檯應用程序SQL更新查詢 - 時間輸出
此代碼是工作的罰款,但我現在收到以下錯誤:
Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
我已經試過在管理工作室單獨運行SQL腳本,它工作正常。
我也試過驗證服務器空間和數據庫大小,都很好。
任何人都可以提供解決方案嗎?
Connection(True)
Using comSQL As New SqlCommand("SELECT * FROM Seq_Emails_ToSend", conSQL)
Using dr As SqlDataReader = comSQL.ExecuteReader
While dr.Read
Dim madTO As MailAddressCollection = ConvertStringtoMAD(dr("Email_TO").ToString)
Dim madCC As MailAddressCollection = ConvertStringtoMAD(dr("Email_CC").ToString)
Dim madBCC As MailAddressCollection = ConvertStringtoMAD(dr("Email_BCC").ToString)
Dim isHTML As Boolean = CBool(dr("Email_HTML").ToString)
Dim Priority As MailPriority = CInt(dr("Email_Priority").ToString)
Dim Subject As String = CStr(dr("Email_Subject").ToString)
Dim Body As String = CStr(dr("Email_Body").ToString)
Dim ID As Integer = CInt(dr("Email_ID").ToString)
Dim Status As String
If EmailFile(madTO, madCC, madBCC, "", isHTML, Priority, Subject, Body) Then
Status = "Sent"
Else
Status = "Failed"
End If
Using comSQL2 As New SqlCommand("UPDATE Seq_Emails SET [Status] = @Status, [Date_Sent] = @Date WHERE Email_ID = @ID", conSQL)
comSQL2.Parameters.Add("@ID", SqlDbType.Int).Value = ID
comSQL2.Parameters.Add("@Status", SqlDbType.NVarChar).Value = Status
comSQL2.Parameters.Add("@Date", SqlDbType.DateTime).Value = DateTime.Now
comSQL2.ExecuteNonQuery()
End Using
End While
End Using
End Using
Connection(False)
您是否已啓用MARS(多活動結果集)? – Steve
嗨對不起,我不知道MARS是什麼或者如何啓用它?不過,我知道我沒有禁用它,上面的代碼昨天工作,並已在過去幾個月。 – Steve
看看你的連接字符串,並檢查是否有一個子字符串'MultipleActiveResultSets = True;' – Steve