Come otterresti gli oggetti Comando SQL per un determinato TableAdapter e SqlDataAdapter in C # (.NET 2.0)

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

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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top