Domanda

Ho qualche codice:

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

Comunque anche io voglio essere in grado di trasmettere valori vuoti alla stored procedure in modo che semplicemente non li usa.

Ora, con le stringhe questo è facile, posso solo passare String.Empty e funzionerà. Tuttavia, se voglio passare date vuote questo è un problema.

Io, ovviamente provato:

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

Ma questo non significa' lavoro, dà l'errore:

  

System.Exception:. Un queryparameter non può essere di tipo System.Object

Dopo qualche lettura ho scoperto che l'ExecuteCommand non supporta parametri nulli, mentre le specifiche afferma che dovrebbe.

Qualcuno ha incontrato questo problema e trovato una soluzione?

Grazie mille

È stato utile?

Soluzione

Hai provato:

DBNull.Value

Altri suggerimenti

Hai provato l'invio DBNull.Value o nuova Nullable<DateTime>()?

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