¿Cómo obtendría los objetos de comando Sql para un TableAdaptor y un SqlDataAdaptor determinados en C# (.NET 2.0)?
-
01-07-2019 - |
Pregunta
Estoy creando una clase genérica de registro/manejo de errores para nuestras aplicaciones.El objetivo es registrar la información de excepción, información sobre la clase y función (así como parámetros) y, si es relevante, la información sobre el System.Data.SqlClient.SqlCommand
objeto.
Me gustaría poder manejar el paso. SqlCommands
, TableAdaptors
, y SqlDataAdaptors
.
Soy nuevo en el uso de la reflexión y sé que es posible hacerlo, pero no estoy seguro de cómo hacerlo.Por favor avise.
Solución
¿Es esto de lo que estás hablando?
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 implementa IDbDataAdapter, que tiene captadores/definidores para todos los comandos CRUD.SqlDataAdapter los implementa explícitamente, por lo que no aparecen en la firma de la clase a menos que primero los envíe a la interfaz.No es necesaria ninguna reflexión.