Leere Liste oder Nullwert an Tabellenparameter einer gespeicherten Prozedur binden

Habe ich erstellt eine gespeicherte Prozedur, die eine Tabelle geschätzt, die parameter, die eine Tabelle mit einer einzigen Spalte vom Typ int. Die Idee ist, übergeben Sie einfach eine Liste von ids in der Shop-Verfahren und ermöglichen die sp mit den Daten arbeiten. Jedoch in dem Fall, wo es keine Daten zu übergeben, bin ich auf Probleme (die Dinge richtig funktionieren, wenn ich die Daten). Ich bin Umwandlung einer Liste in ein IEnumerable, und-Bindung, die zu der Tabelle geschätzten parameter für die sp. Ich habe versucht zu binden eine leere Liste, die zu dem Fehler geführt

System.ArgumentException: Es gibt keine Datensätze in der SqlDataRecord-enumeration. Senden Sie eine Tabellenwert-parameter mit keine Zeilen, verwenden Sie eine null-Referenz für den Wert statt.

Ich habe dann versucht, binden einen null-Wert (ich dachte, das war es, was die obige Meldung war immer an), aber das nur führte zu einer anderen Fehlermeldung

System.NotSupportedException: DBNull Wert für den parameter '@MainItemIdList " wird nicht unterstützt. Tabellenwert-Parameter nicht DBNull.

Erscheint es nicht, dass Sie erklären können der Tabelle geschätzten parameter als null in der sp-Erklärung. Was ist die richtige Methode für die Bindung eines leeren Liste am Tisch geschätzten parameter?

InformationsquelleAutor der Frage Brian Jones | 2010-09-02

Schreibe einen Kommentar