2010-12-21 9 views
0

Ich habe eine gespeicherte Prozedur im DB, die verschiedene Spalten für verschiedene Bedingungen zurückgibt. (dynamisches SQL). aber wenn ich die sqlhelper-Klasse verwende und den gespeicherten proc in meiner Business-Schicht ausführe, gibt sie alle möglichen Spalten (von allen if/else-Bedingungen in der dynamischen sql) in der zurückgegebenen Datenmenge zurück. Die anderen Spalten, die nicht Teil der Ergebnismenge sein sollten, sind leer. aber diese Spalten kommen mit den DB-Einschränkungen für sie zurück. Jedes Mal, wenn ich den Datensatz verwende, muss ich "enforceconstraints" auf false setzen. Gibt es einen besseren Ansatz, 1) zu vermeiden, die Einschränkungen von der DB zurück zu bringen? oder 2) um nur die erforderlichen dynamischen Spalten aus der DB zu bekommen?Dataset Constraints von DB .net 3.5

danke

Antwort

0

Ihre Datentabellen Wesen Sind erzeugt schwach oder verwenden Sie eingegeben Datensätze stark?

Wahrscheinlich nicht, was Sie hören möchten, aber mein Rat wäre, verschiedene SPs für die verschiedenen Ergebnissätze zu haben. Die gesamte Inferenz von Ergebnismengen für z.B. Datasets funktionieren zwar vom SP, aber wenn der SP basierend auf den bereitgestellten Daten verschiedene Dinge zurückgeben kann, werden Probleme angezeigt, die Sie bereits gesehen haben.