C# ExecuteQuery Null Значение
-
22-09-2019 - |
Вопрос
У меня есть код:
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: Queryparameter не может быть типа System.Object.
После некоторого чтения я узнал, что Arexecommand не поддерживает нулевые параметры, в то время как спецификация утверждает, что она должна.
Кто -нибудь столкнулся с этой проблемой и нашел обходной путь?
Огромное спасибо
Решение
Ты пытался:
DBNull.Value
Другие советы
Вы пробовали отправить DBNull.Value
или новое Nullable<DateTime>()
?
Не связан с StackOverflow