Wie würden Sie die SQL-Befehlsobjekte für eine gegebene Table und SqlDataAdapter in C # (.NET 2.0) erhalten

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

Frage

Ich erstelle eine generische Fehlerbehandlung / logging Klasse für unsere Anwendungen. Das Ziel ist die Ausnahme Info, Informationen über die Klasse und Funktion (sowie Parameter) und gegebenenfalls die Informationen über das Objekt System.Data.SqlClient.SqlCommand loggt sein.

Ich möchte in der Lage sein zu handhaben vorbei in SqlCommands, TableAdaptors und SqlDataAdaptors.

Ich bin neu in Reflexion mit und ich weiß, dass es möglich ist, dies zu tun, ich bin nur nicht sicher, wie es geht. Bitte beraten.

War es hilfreich?

Lösung

Ist das, was du redest?

SqlDataAdapter da = new SqlDataAdapter();
var cmd1 = ((IDbDataAdapter)da).DeleteCommand;
var cmd2 = ((IDbDataAdapter)da).UpdateCommand;
var cmd3 = ((IDbDataAdapter)da).SelectCommand;
var cmd4 = ((IDbDataAdapter)da).InsertCommand;

Die SqlDataAdapter implementiert IDbDataAdapter, die Getter / Setter für alle CRUD Befehle hat. Die SqlDataAdapter setzt diese explizit, so zeigen sie nicht in der Signatur der Klasse, es sei denn Sie zunächst auf die Schnittstelle umgewandelt es. Keine Reflexion erforderlich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top