Come otterresti gli oggetti Comando SQL per un determinato TableAdapter e SqlDataAdapter in C # (.NET 2.0)
-
01-07-2019 - |
Domanda
Sto creando una classe generica di gestione / registrazione degli errori per le nostre applicazioni. L'obiettivo è registrare le informazioni sull'eccezione, le informazioni sulla classe e sulla funzione (nonché i parametri) e, se rilevanti, le informazioni sull'oggetto System.Data.SqlClient.SqlCommand
.
Vorrei essere in grado di gestire il passaggio tra SqlCommands
, TableAdaptors
e SqlDataAdaptors
.
Sono nuovo nell'uso della riflessione e so che è possibile farlo, non sono sicuro di come procedere. Si prega di avvisare.
Soluzione
È di questo che stai parlando?
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, che ha getter / setter per tutti i comandi CRUD. SqlDataAdapter li implementa in modo esplicito, quindi non vengono visualizzati nella firma della classe a meno che non venga prima trasmesso all'interfaccia. Nessuna riflessione necessaria.