如何在SQLServer2005中检查c#中executequery的返回值?

如何在SQLServer2005中检查c#中executequery的返回值?,c#,sql-server,sql-server-2005,ado.net,return-value,C#,Sql Server,Sql Server 2005,Ado.net,Return Value,我试图在c#中调用asp.net站点中的存储过程。我正在使用SqlCommand类并调用ExecuteQuery()。返回值是-1 存储过程工作正常,我在SQL Management Studio中对其进行了测试。如何获得更详细的错误描述?我的第一个调用端口是在SQL Server Management Studio中运行SQL Server Profiler,以便您可以确切地看到针对数据库执行的SQL。当您在SQLServerManagementStudio中运行此SQL时,您将能够确定它是否

我试图在c#中调用asp.net站点中的存储过程。我正在使用SqlCommand类并调用ExecuteQuery()。返回值是-1


存储过程工作正常,我在SQL Management Studio中对其进行了测试。如何获得更详细的错误描述?

我的第一个调用端口是在SQL Server Management Studio中运行SQL Server Profiler,以便您可以确切地看到针对数据库执行的SQL。当您在SQLServerManagementStudio中运行此SQL时,您将能够确定它是否是SQL错误。返回您的发现。

您的存储过程应该如下所示。有关
错误消息
错误编号

Create Proc Testing
As

Set NoCount On
Set XACT_ABORT ON
Begin Try
    Begin Tran
        "Your Insert/Update Statement"
        Select '' as 'Message', 0 as 'Number'
    Commit Tran
End Try
Begin Catch
    Select Error_Message() as 'Message', Error_Number() as 'Number'
    Rollback Tran
End Catch
您的代码应该如下所示

string str;
int number;
using (System.Data.SqlClient.SqlConnection con = new SqlConnection("YourConnection string")) { 
    con.Open(); 
    SqlCommand cmd = new SqlCommand(); 
    string expression = "Parameter value"; 
    cmd.CommandType = CommandType.StoredProcedure; 
    cmd.CommandText = "Your Stored Procedure"; 
    cmd.Parameters.Add("Your Parameter Name", 
                SqlDbType.VarChar).Value = expression;    
    cmd.Connection = con; 
    using (IDataReader dr = cmd.ExecuteReader()) 
    { 
        if (dr.Read()) 
        {
             str = dr["Message"].ToString();
             number = Convert.ToInt16(dr["Number"]);
        } 
    } 
}

通过这种方式,如果存储过程返回任何

,您可以从存储过程中捕获错误消息/错误号。请查看System.Data.SqlClient.SqlCommand没有ExecuteQuery方法…可能是您的意思