调试问题(方法从未调用)

时间:2010-12-30 12:10:15

标签: c# visual-studio-2008 debugging stored-procedures

我正在尝试执行存储过程,但以下行给了我麻烦:

result = this.sqlDalExternal.ExecuteStoredProcedure(SqlCommonExecutionType.DataTableResult, sqlCommand) as DataTable;

永远不会调用ExecuteStoredProcedure方法。调试时,我可以从一行到另一行(如预期的那样)。然后,当我在这条线上并且想要进入时,它只是跳到捕获(例外e)。 result的值为null。

sqlCommand.CommandText设置为存储过程名称。为什么this.sqlDalExternal.ExecuteStoredProcedure方法从未被调用?

    private DataTable ExecuteStoredProcedure(string storedProcedureName, Collection<SqlParameter> parameters)
    {
        DataTable result = null;

        try 
        {
            SqlCommand sqlCommand = new SqlCommand(storedProcedureName);
            if (parameters != null)
                foreach (SqlParameter parameter in parameters)
                    sqlCommand.Parameters.Add(parameter);

            result = this.sqlDalExternal.ExecuteStoredProcedure(SqlCommonExecutionType.DataTableResult, sqlCommand) as DataTable;
        }
        catch(Exception e)
        {
            throw new ExternalSystemAdapterException(9102, e.ToString());
        }
        return result;
    }

2 个答案:

答案 0 :(得分:1)

也许是因为签名在被调用方法和你想调试的方法之间不匹配? :)

你打电话:

  

ExecuteStoredProcedure(SqlCommonExecutionType,   的SqlCommand)

您调试的方法:

  

ExecuteStoredProcedure(字符串,   集合)

...

答案 1 :(得分:1)

  

“抓住了NullReferenceException”。在它下面说“对象引用未设置为对象的实例”。

表明this.sqlDalExternalnull,因此解释了为什么永远不会调用该方法(因为没有对象可以调用它)。