Я добавляю в БД запись, стоки беру из textbox. Если textbox не заполнен, то нужно поставить значение NULL.
Первый вариант (рабочий):
string patronymic = textBoxPatronymic.Text; if(patronymic != "") { command.Parameters.AddWithValue(patronymic );} else {command.Parameters.AddWithValue(DBNull.Value);}
Но хотелось, чтобы код был более читабельным, сделал так:
command.Parameters.AddWithValue("@patronymic", string.IsNullOrWhiteSpace(patronymic) ? DBNull.Value : patronymic);
или
command.Parameters.Add("@patronymic", SqlDbType.NVarChar).Value = string.IsNullOrWhiteSpace(patronymic) ? DBNull.Value : patronymic;
Но в результате ошибка:
Не удается определить тип условного выражения, так как неявного преобразования между "System.DBNull" и "string" не существует.
В интернете советуют этот способ, но у меня он не работает. В чем моя ошибка?
Вы пытаетесь вернуть неодинаковые типы в
string.IsNullOrWhiteSpace(patronymic) ? DBNull.Value : patronymic
Так делать нельзя.
Предлагаю вам явно привести каждый из них к базовому object
string.IsNullOrWhiteSpace(patronymic) ? (object)DBNull.Value : (object)patronymic
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть excel-файл, в нем два столбца А и ВИз программы на C# мне нужно организовать поиск значения в столбце А, и вернуть в программу рядом стоящее...
Имеются UserControl'ы, они все наследуются от UserControlИ как сделать чтоб они наследовались от AbstractClass, а сам AbstractClass от UserControl