C # ExecuteQuery нулевое значение

2

У меня есть код:

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

Однако я также хочу иметь возможность передавать пустые значения в хранимую процедуру, чтобы она просто их не использовала.

Теперь с помощью строк это легко, я могу просто передать String.Empty, и он будет работать. Однако, если я хочу передать пустые даты, это проблема.

Я, очевидно, пробовал:

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

Но это не работает, дает ошибку:

Ошибка System.Exception: параметр запроса не может быть типа System.Object.

После некоторого чтения я узнал, что ExecuteCommand не поддерживает нулевые параметры, в то время как spec утверждает, что он должен.

Кто-нибудь столкнулся с этой проблемой и нашел обходное решение?

Спасибо кучу

Теги:
stored-procedures
null

2 ответа

4
Лучший ответ

Вы пробовали:

DBNull.Value
1

Вы пробовали отправить DBNull.Value или новый Nullable<DateTime>()?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню