我向数据库添加一条记录,我从文本框中获取库存。如果文本框未填充,则需要将该值设置为 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”之间没有隐式转换。
网上推荐这个方法,但是对我不起作用。我的错误是什么?
您是否试图返回不相等的类型
你不能那样做。
我建议你明确地将他们每个人带到基地
object