【问题标题】:How to set ConnectionTimeout to 0 in Sql Server 2008?如何在 Sql Server 2008 中将 ConnectionTimeout 设置为 0?
【发布时间】:2010-01-05 18:48:27
【问题描述】:

我将超时设置为0但连接过早关闭,这句话有什么问题?

        Using odbcconn As New OdbcConnection(DataShared.gstrCNN)

        odbcconn.ConnectionTimeout = 0
        odbcconn.Open()
        Dim OdbcCmd As New OdbcCommand( _
            "{ ? = CALL [proc_Cp_GenEstadoCta](" & _
            PCOD_EMPR & ", " & _
            PPER_ANUAL & "," & _
            DataShared.gintCODUSER & " ) }", odbcconn)

        OdbcCmd.Parameters.Add("@return", OdbcType.Int)
        OdbcCmd.Parameters("@return").Direction = ParameterDirection.ReturnValue

        OdbcCmd.ExecuteNonQuery()
        If CInt(OdbcCmd.Parameters("@return").Value) = 0 Then
            GenEstadoMovsSaldos = True
        Else
            GenEstadoMovsSaldos = False
        End If

    End Using

修改后的代码

        Using odbcconn As New OdbcConnection(DataShared.gstrCNN)

        --odbcconn.ConnectionTimeout = 0

        odbcconn.Open()
        Dim OdbcCmd As New OdbcCommand( _
            "{ ? = CALL [proc_Cp_GenEstadoCta](" & _
            PCOD_EMPR & ", " & _
            PPER_ANUAL & "," & _
            DataShared.gintCODUSER & " ) }", odbcconn)

        OdbcCmd.CommandTimeout = 60

        OdbcCmd.Parameters.Add("@return", OdbcType.Int)
        OdbcCmd.Parameters("@return").Direction = ParameterDirection.ReturnValue

        OdbcCmd.ExecuteNonQuery()
        If CInt(OdbcCmd.Parameters("@return").Value) = 0 Then
            GenEstadoMovsSaldos = True
        Else
            GenEstadoMovsSaldos = False
        End If

    End Using

效果很好!

【问题讨论】:

    标签: sql-server vb.net odbc


    【解决方案1】:

    你想通过将连接超时设置为零来实现什么?

    连接超时是尝试打开数据库连接时的等待时间。它与连接何时关闭无关。

    也许您正在寻找OdbcCommand 类中的CommandTimeout 属性?将CommandTimeout 设置为零将取消等待查询运行时的时间限制。

    但是,如果数据库脱机,您的程序将无限期地等待不会发生的事情,因此您应该考虑设置一个较长的时间,以便命令最终超时而不是永远。

    (顺便问一下,为什么要使用 ODBC 数据库驱动程序而不是更快、更专业的 SqlClient 驱动程序?)

    【讨论】:

    • 是的,因为我连接到其他数据库,如 MySql。谢谢
    猜你喜欢
    • 2011-05-29
    • 2012-09-20
    • 2011-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多