Проблема с отладкой (метод никогда не вызывался) - PullRequest
0 голосов
/ 30 декабря 2010

Я пытаюсь выполнить хранимую процедуру, но следующая строка доставляет мне проблемы:

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

Метод ExecuteStoredProcedure явно никогда не вызывается.При отладке я могу переходить с одной строки на другую (как и ожидалось).Затем, когда я нахожусь на этой линии и хочу войти, он просто прыгает, чтобы поймать (Исключение е).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 ]

1 голос
/ 30 декабря 2010

"Обнаружено исключение NullReferenceException".А ниже написано: «Ссылка на объект не установлена ​​на экземпляр объекта».

предполагает, что this.sqlDalExternal равно null, что объясняет, почему метод никогда не вызывается (так как нет объекта для вызова).

1 голос
/ 30 декабря 2010

Может быть, потому что подпись не совпадает между вызываемым методом и методом, который вы хотите отладить?:)

Вы вызываете:

ExecuteStoredProcedure (SqlCommonExecutionType, SqlCommand)

Метод, который вы отлаживаете:

ExecuteStoredProcedure(строка, коллекция)

...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...