如何在C#(.NET 2.0)中获取给定TableAdapter和SqlDataAdapter的Sql Command对象
-
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命令的getter / setter。 SqlDataAdapter显式实现了这些,因此除非您首先将其强制转换为接口,否则它们不会显示在类的签名中。没有必要反思。
不隶属于 StackOverflow