Как бы вы получили объекты команды Sql для заданного TableAdaptor и SqlDataAdaptor в C# (.NET 2.0)
-
01-07-2019 - |
Вопрос
Я создаю общий класс обработки/регистрации ошибок для наших приложений.Цель состоит в том, чтобы зарегистрировать информацию об исключении, информацию о классе и функции (а также о параметрах) и, если необходимо, информацию о System.Data.SqlClient.SqlCommand
объект.
Я хотел бы иметь возможность обрабатывать передачу SqlCommands
, TableAdaptors
, и SqlDataAdaptors
.
Я новичок в использовании отражения и знаю, что это возможно, но я просто не знаю, как это сделать.Пожалуйста, порекомендуйте.
Решение
Ты об этом говоришь?
SqlDataAdapter da = new SqlDataAdapter();
var cmd1 = ((IDbDataAdapter)da).DeleteCommand;
var cmd2 = ((IDbDataAdapter)da).UpdateCommand;
var cmd3 = ((IDbDataAdapter)da).SelectCommand;
var cmd4 = ((IDbDataAdapter)da).InsertCommand;
SqlDataAdapter реализует IDbDataAdapter, который имеет методы получения/установки для всех команд CRUD.SqlDataAdapter реализует их явно, поэтому они не отображаются в сигнатуре класса, пока вы сначала не приведете его к интерфейсу.Никакого размышления не требуется.