Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何在SQLServer2000上查看上次从SqlClient数据提供程序运行的sql查询?_Asp.net_Sql_Sql Server 2000_Sqlclient - Fatal编程技术网

Asp.net 如何在SQLServer2000上查看上次从SqlClient数据提供程序运行的sql查询?

Asp.net 如何在SQLServer2000上查看上次从SqlClient数据提供程序运行的sql查询?,asp.net,sql,sql-server-2000,sqlclient,Asp.net,Sql,Sql Server 2000,Sqlclient,虽然我能够看到最后一次运行的查询,这是一个执行的存储过程,但我没有得到调用SP的参数值。相反,我得到的是: StoredProcedureName;1 通过以下命令: DBCC INPUTBUFFER(SPID) 通过在ObjectExplorer->Management->ActivityMonitor中查看SPID,我得到了SPID 有什么方法可以让我得到完整的文本,包括执行SP时使用的参数吗?我知道这个答案可能不是您想要的,因为它并没有真正回答您的问题,我想了一下,最后认为这可能会有所

虽然我能够看到最后一次运行的查询,这是一个执行的存储过程,但我没有得到调用SP的参数值。相反,我得到的是:

StoredProcedureName;1
通过以下命令:

DBCC INPUTBUFFER(SPID)
通过在ObjectExplorer->Management->ActivityMonitor中查看SPID,我得到了SPID


有什么方法可以让我得到完整的文本,包括执行SP时使用的参数吗?

我知道这个答案可能不是您想要的,因为它并没有真正回答您的问题,我想了一下,最后认为这可能会有所帮助

我不知道你有多少疑问,你的程序有多大。。。但出于调试目的,我想对所有查询(包括纯文本查询和存储过程查询)执行类似的操作。因此,我编写了一个简单的包装器类,它允许我在有参数和无参数的情况下执行纯文本查询/存储过程。然后,如果出现执行选项,我将捕获它,用原始异常加上执行的查询和所有参数构建一个新的自定义异常,并在自定义消息中返回所有异常。我在包装器中使用Oracle,但几乎完全相同:

Public Function ExecuteCommandQuery(ByRef oCMD As OracleClient.OracleCommand) As DataTable
    oCMD.Connection = _oConn

    Dim dt As New DataTable

    'exception if one occured'
    Dim DBException As Exception = Nothing

    Try
        'get an adapter'
        Dim cmd As New OracleDataAdapter(oCMD)
        'Fill the data table and ket a count of records returned'
        cmd.Fill(dt)

    Catch ex As Exception
        'capture exception, and rethrow after properly closing the Oracle Connection'
        DBException = ex
    Finally
        _oConn.Close()
    End Try

    'if exception occured, rethrow'
    If DBException IsNot Nothing Then
        Throw New Exception( _
            String.Format("A database error occured: {0} " + _
                          Environment.NewLine + Environment.NewLine + " --- " + _
                          Environment.NewLine + Environment.NewLine + _
                          " Your query: {1}" + _
                          Environment.NewLine + Environment.NewLine + " --- " + _
                          Environment.NewLine + Environment.NewLine + _
                          " Your Parameters: " + Environment.NewLine + "{2}" _
                          , DBException.ToString(), oCMD.CommandText, GenerateParameterErrorInfo(oCMD)))
    End If

    Return dt
End Function

我知道这个答案可能不是你想要的,因为它并没有真正回答你的问题,我想了一下,最后认为这可能会有所帮助

我不知道你有多少疑问,你的程序有多大。。。但出于调试目的,我想对所有查询(包括纯文本查询和存储过程查询)执行类似的操作。因此,我编写了一个简单的包装器类,它允许我在有参数和无参数的情况下执行纯文本查询/存储过程。然后,如果出现执行选项,我将捕获它,用原始异常加上执行的查询和所有参数构建一个新的自定义异常,并在自定义消息中返回所有异常。我在包装器中使用Oracle,但几乎完全相同:

Public Function ExecuteCommandQuery(ByRef oCMD As OracleClient.OracleCommand) As DataTable
    oCMD.Connection = _oConn

    Dim dt As New DataTable

    'exception if one occured'
    Dim DBException As Exception = Nothing

    Try
        'get an adapter'
        Dim cmd As New OracleDataAdapter(oCMD)
        'Fill the data table and ket a count of records returned'
        cmd.Fill(dt)

    Catch ex As Exception
        'capture exception, and rethrow after properly closing the Oracle Connection'
        DBException = ex
    Finally
        _oConn.Close()
    End Try

    'if exception occured, rethrow'
    If DBException IsNot Nothing Then
        Throw New Exception( _
            String.Format("A database error occured: {0} " + _
                          Environment.NewLine + Environment.NewLine + " --- " + _
                          Environment.NewLine + Environment.NewLine + _
                          " Your query: {1}" + _
                          Environment.NewLine + Environment.NewLine + " --- " + _
                          Environment.NewLine + Environment.NewLine + _
                          " Your Parameters: " + Environment.NewLine + "{2}" _
                          , DBException.ToString(), oCMD.CommandText, GenerateParameterErrorInfo(oCMD)))
    End If

    Return dt
End Function

实际上,我一直在寻找它,以方便调试,这样我就可以执行具有确切语法的sql,而不需要到visual studio复制异常消息并在sql server中执行。这就是我使用它的方式。当抛出异常时(我使用ASP.Net),我会得到完整的异常以及屏幕上所有参数的完整查询。然后我将它们复制到Toad/sqlservermanagementstudio中,并手动执行(如果我仅仅通过查看它看不出它为什么会坏的话)。我的回答有帮助吗?或者我有没有办法修改它,使其能够运行?实际上,我一直在寻找它,以方便调试,这样我就可以执行具有确切语法的sql,而不需要转到visual studio复制异常消息并在sql server中执行。这就是我使用它的方式。当抛出异常时(我使用ASP.Net),我会得到完整的异常以及屏幕上所有参数的完整查询。然后我将它们复制到Toad/sqlservermanagementstudio中,并手动执行(如果我仅仅通过查看它看不出它为什么会坏的话)。我的答案有帮助吗?或者我有没有办法修改它,使它可以?