Как бы вы получили объекты команды Sql для заданного TableAdaptor и SqlDataAdaptor в C# (.NET 2.0)

StackOverflow https://stackoverflow.com/questions/102623

Вопрос

Я создаю общий класс обработки/регистрации ошибок для наших приложений.Цель состоит в том, чтобы зарегистрировать информацию об исключении, информацию о классе и функции (а также о параметрах) и, если необходимо, информацию о 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 реализует их явно, поэтому они не отображаются в сигнатуре класса, пока вы сначала не приведете его к интерфейсу.Никакого размышления не требуется.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top