在我的数据层类中,我像这样初始化一个参数:
private int? _DependencyID;
public int? DependencyID
{ get {return _DependencyID;} set {_DependencyID = value;} }
public ConstructorMethod()
{
_DependencyID = (int?)null;
}
在类Insert()方法中,我正在尝试
cmd.AddWithValue("@DependencyID", _DependencyID);
如果_DependencyID具有值,则一切正常。
如果_DependencyID为null,则会出现错误:
参数化查询
'(@ param1(nvarchar(10),
@ param2(nvarchar(255),期望
参数“ @DependecyID”
不提供
我找到了这个[文章] [1],所以我尝试像这样调整代码:
cmd.AddWithValue("@DependencyID", _DependencyID == null? DBNull.Value : _DependencyID);
and
cmd.AddWithValue("@DependencyID", _DependencyID == null? (int?) DBNull.Value : _DependencyID);
无论哪种方式,都有问题。我该如何处理?
预先感谢您的任何帮助
最佳答案
您需要添加一个object
:
cmd.AddWithValue("@DependencyID", _DependencyID == null? DBNull.Value : (object)_DependencyID);
您可以将其缩短为
cmd.AddWithValue("@DependencyID", (object)_DependencyID ?? DBNull.Value);