c# - 将 DBNull 传递给 SqlParameter 时出错
问题描述
我正在尝试将空值传递给SqlParameter
如果变量vName
的值为空,否则传递vName
值如下所示
cmd.Parameters.Add(new SqlParameter("@NAME", SqlDbType.VarChar)).Value = vName ? null : DBNull.Value;
但我得到一个错误
无法将类型“字符串”隐式转换为“布尔”
我搜索并发现我必须使用AgeItem.AgeIndex
但我收到错误消息
当前上下文中不存在名称“AgeItem”
cmd.Parameters.Add(new SqlParameter("@NAME", SqlDbType.VarChar)).Value =(object)AgeItem.AgeIndex ?? DBNull.Value;
解决方案
vName
是一个字符串,但你使用它就像它是一个bool
: vName ? ...
。使用vName == null ? ...
:
cmd.Parameters.Add(new SqlParameter("@NAME", SqlDbType.VarChar)).Value =
vName == null ? DBNull.Value : (Object)vName;