Frage

Ich habe einen Code:

using (OAZISDBDataContext ctx = new OAZISDBDataContext())
            {                    
                IEnumerable<DBContactDetail> details = ctx.ExecuteQuery<DBContactDetail>("exec [dbo].[zna_contact] {0}, {1}",
                    "test", "19601023",
             }

Ich möchte jedoch auch in der Lage sein, leere Werte an die gespeicherte Prozedur zu übergeben, damit sie sie einfach nicht verwendet.

Jetzt ist dies einfach, ich kann einfach String.EMPY übergeben und es wird funktionieren. Wenn ich jedoch leere Daten übergeben möchte, ist dies ein Problem.

Ich habe es offensichtlich versucht:

using (OAZISDBDataContext ctx = new OAZISDBDataContext())
            {                    
                IEnumerable<DBContactDetail> details = ctx.ExecuteQuery<DBContactDetail>("exec [dbo].[zna_contact] {0}, {1}",
                    "test", null,
             }

Dies funktioniert jedoch nicht, gibt den Fehler:

System.Exception: Ein Queryparameter kann nicht vom Typ System.Object sein.

Nach einigen Lesen fand ich heraus, dass der ExecuteCommand keine NULL -Parameter unterstützt, während die Spezifikation behauptet, dass dies sollte.

Hat jemand dieses Problem gestoßen und eine Problemumgehung gefunden?

Vielen Dank

War es hilfreich?

Lösung

Hast du es versucht:

DBNull.Value

Andere Tipps

Haben Sie versucht zu senden DBNull.Value oder neu Nullable<DateTime>() ?

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